你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> Swift實現HTTP網絡操作庫Alamofire使用詳解4(用戶權限認證)

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

編輯:IOS7技巧
關於http網絡我們介紹過不少的文件上傳的例子,今天我們一起來看一篇關於 Swift實現HTTP網絡操作庫Alamofire使用詳解4(用戶權限認證)的例子,希望文章能夠幫助到大家.

 

八,使用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頁面,則會彈出對話框要求輸入用戶名和密碼:


原文:Swift - HTTP網絡操作庫Alamofire使用詳解4(用戶權限認證)


如果輸入正確的用戶名(hangge)和密碼(123)則返回正常的數據,否則返回錯誤信息並需要繼續輸入:

原文:Swift - HTTP網絡操作庫Alamofire使用詳解4(用戶權限認證) 原文:Swift - HTTP網絡操作庫Alamofire使用詳解4(用戶權限認證)

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

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved