Swift實現HTTP網路操作庫Alamofire使用詳解4(使用者權限認證)

來源:互聯網
上載者:User

 

八,使用Alamofire進行使用者認證

1,Alamofire支援如下幾種認證(Authentication)

本文講解使用 Alamofire 進行 HTTP Basic 驗證。

2,HTTP Basic認證介紹

(1)HTTP Basic認證是允許HTTP伺服器對WEB瀏覽器進行使用者身份證的方法。
(2)當一個用戶端向HTTP伺服器進行資料請求時,用戶端會接收到HTTP伺服器的身份認證要求,這時用戶端會提示使用者輸入使用者名稱及密碼,然後將使用者名稱及密碼以BASE64加密。並於每次請求資料時,將密文附加於要求標頭(Request Header)中。
(3)HTTP伺服器在每次收到請求包後,根據協議取得用戶端附加的使用者資訊(BASE64加密的使用者名稱和密碼),解開請求包,對使用者名稱及密碼進行驗證,如果使用者名稱及密碼正確,則根據用戶端請求,返回用戶端所需要的資料。否則,返回錯誤碼或重新要求用戶端提供使用者名稱及密碼。

3,HTTP Basic認證的使用情境
HTTP基本認證只提供簡單的使用者驗證功能,優點是使用簡單,適合於對安全性要求不高的系統或裝置中。
比如:路由器的配置頁面就常使用HTTP Basic認證。(瀏覽器輸入路由器ip地址,如192.168.1.1,這時就會彈出個使用者密碼輸入框進行許可權驗證。)

4,HTTP Basic認證的缺點
(1)沒有靈活可靠的認證策略,如無法提供域(domain或realm)認證功能。
(2)BASE64 的加密強度非常低。當然,HTTP基本認證系統也可以與SSL或者Kerberos結合,實現安全效能較高(相對)的認證系統。

5,服務端代碼
為了測試Alamofire的認證功能,我們首先要在服務端建立個帶有認證的頁面用於測試。這裡以PHP為例:


<?php
//HTTP Basic認證
function authenticate() 
{
    header('WWW-Authenticate: Basic realm=""');
    header('HTTP/1.0 401 Unauthorized');
    echo "請輸入正確的使用者名稱和密碼";
    exit;
}
 
if (!isset($_SERVER['PHP_AUTH_USER']) ||
    addslashes($_SERVER['PHP_AUTH_USER'])!= 'hangge' ||
    addslashes($_SERVER['PHP_AUTH_PW'])!= '123') 
{
    //認證失敗
    authenticate();
}
else
{
    //認證成功
    echo "歡迎您: {$_SERVER['PHP_AUTH_USER']}<br />";
    echo "目前時間:".date('h:i:s');
    
    //authenticate(); //重新開始
}
?>

使用瀏覽器訪問這個authenticate.php頁面,則會彈出對話方塊要求輸入使用者名稱和密碼:



如果輸入正確的使用者名稱(hangge)和密碼(123)則返回正常的資料,否則返回錯誤資訊並需要繼續輸入:

 

6,用戶端代碼

使用Alamofire進行認證:


let user = "hangge"
let password = "123"
        
Alamofire.request(.GET, "http://www.hangge.com/authenticate.php")
    .authenticate(user: user, password: password)
    .responseString  { response in
       // debugPrint(response)
        print(response.result.value)
}
從控制台列印的訊息可以看出,認證通過,並成功擷取到資料:
原文出自:www.hangge.com  轉載請保留原文連結:http://www.hangge.com/blog/cache/detail_973.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.