webapi服務端對接app

來源:互聯網
上載者:User

標籤:factory   actor   art   ssr   post   ram   nbsp   bapi   web   

目前移動端流行  ,本文章主要介紹本人(新手) 開發 與app對接服務端 進行分享 。不足之處請指正

與app對接  一般的網站介面 需映射外網(即外部網路可以直接存取該介面項目),那麼  這就要考慮到項目的資料保密性和一些驗證。

目前 我做的介面中所用到了 如下技術:

1:資料的加密/解密:  資料在傳輸過程中  需要進行加解密操作  才能有效保護資料的安全性 (我的項目中採用.net framwork 內建的aes 加解密)

 

2:簽名驗證:即 app端將資料進行 無法復原加密  然後  放在http請求的header中  ,服務端  擷取到  資料  採用相同的無法復原加密方式進行獲得 密文 ,將app的密文和服務端解析的密文進行匹配 (可在一定程度上保護資料不被篡改)

 

3:時間戳記驗證:app端 在http請求中 加入時間戳記 資料 ,服務端擷取時間戳記 ,去驗證 app的時間戳記  與伺服器端  設定的時間戳記  ,防止重放攻擊

 

4:登入時效驗證:在每次登入時 產生一個唯一的token驗證碼 儲存在資料庫中  ,並將該 token返回至APP  ,app每次請求資料  去驗證 token是否 已淘汰,如果過時 重新登入

 

在 項目開發過程中   對於以上的驗證  建議統一處理

1:在請求資料進入時 統一進行  參數的解密和驗證 

  方法:統一解密  webapi 項目 可以繼承類  MessageProcessingHandler  並重寫 ProcessRequest 和  ProcessResponse 方法

  在該ProcessRequest 方法中進行資料的解密 

  在該ProcessResponse 方法中進行資料的加密

2.資料驗證 繼承 類 DelegatingHandler ,並重寫 SendAsync 方法  進行  資料的相關驗證, 一般 如果驗證 通過    結果直接 return base.SendAsync(request, token);  即 最終的效果為 將訊息分發到 對應的介面中 進行處理

 如果驗證不通過   可 直接採用如下方式直接  返回資訊

/// <summary>
/// 返回用戶端錯誤資訊
/// </summary>
/// <param name="request">http請求</param>
/// <param name="needEncrypt">是否加密響應資訊</param>
/// <param name="errorMessage">錯誤資訊</param>
/// <returns>
/// 非同步方式返回的錯誤訊息
/// </returns>
private Task<HttpResponseMessage> GenerateErrorResponse(HttpRequestMessage request,
bool needEncrypt,
string errorMessage = "請求參數錯誤")
{
// 記錄錯誤的請求日誌
LogErrorRequest(request);

// 建置錯誤響應訊息
var response = new HttpResponseMessage();
var error = JsonConvert.SerializeObject(new ApiResult() { Message = errorMessage });
response.Content = new StringContent(error, Encoding.GetEncoding("UTF-8"), "application/json");
response.StatusCode = System.Net.HttpStatusCode.OK;
if(needEncrypt)
response.Content.Headers.Add("toencrypt", "");

return Task<HttpResponseMessage>.Factory.StartNew(() => response);
}

webapi服務端對接app

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.