ios開發使用Basic Auth 認證方式

來源:互聯網
上載者:User

         我們app的開發通常有2種認證方式   一種是Basic Auth,一種是OAuth;現在普遍還是使用OAuth的多,而使用Basic Auth認證的少,正好呢我今天給大家介紹的就是使用的比較少的Badic Auth認證方式,這種認證方式開發和調試簡單, 沒有複雜的頁面跳轉邏輯和互動過程,更利於發起方控制。然而缺點就是安全性更低,不過也沒事,我們可以使用https安全加密協議,這樣才更安全。

        我使用的是AFNetworking發送的網路請求,因此我們用Basic Auth認證方式就不能再使用AFN的預設的GET或者POST請求,而是自己定義的NSMutableRequest請求,使用AFN發送,如下面代碼:

  

 //http的get請求地址    NSString *urlStr=[NSString stringWithFormat:@"https://192.168.1.157:8443/v1/sms/send/%@",self.username.text];    NSURL *url = [NSURL URLWithString:urlStr];    //自訂的request    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    //請求到期時間    request.timeoutInterval = 10;    //get請求    request.HTTPMethod = @"GET";    //配置使用者名稱 密碼    NSString * str = [NSString stringWithFormat:@"%@:%@",@"lairen.com",@"sdclean.com"];    //進行加密  [str base64EncodedString]使用開源Base64.h分類檔案加密    NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];    [request setValue:str2 forHTTPHeaderField:@"Authorization"];    AFHTTPRequestOperation *op=[[AFHTTPRequestOperation alloc]initWithRequest:request];    //設定返回資料為json資料    op.responseSerializer= [AFJSONResponseSerializer serializer];    //發送網路請求    [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {                NSLog(@"%@",responseObject);    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {         NSLog(@"%@",error);    }];    //請求完畢回到主線程    [[NSOperationQueue mainQueue] addOperation:op];
     使用Basic Auth認證方式,AFN發送網路請求就是上述代碼的格式,其中代碼的一些難懂的點,我在下圖做了注釋;


      我注釋的第一個是使用者名稱,第二個是密碼,這個使我們Basic Auth認證方式必須設定的要求標頭,然後第三個呢是我們為了我確保安全把使用者名稱和密碼的字串進行了Base64加密,使用的2個檔案是開源的Base64.h  Base64.m 。github上面就可以下載。

  上述代碼中的這行是對字串進行的加密,記住是使用的Base64.h分類方法進行的加密,一定要先匯入Base64.h檔案才可以這樣加密。

[str base64EncodedString]

NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];

  到這裡我們的Basic Auth認證方式就講完了,怎麼樣,很簡單吧。

相關文章

聯繫我們

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