前言:OAuth是一種協(xié)議议慰,OAuth協(xié)議為用戶資源的授權提供了一個安全開放又簡易的標準。
最開始進入新浪官網(wǎng)成為開發(fā)人員奴曙,并設置應用信息别凹。
1>獲取未授權的Request Token
實際上就是打開?新浪提供的登錄頁面,根據(jù)文檔會有兩個必選參數(shù)client_Id(申請應用時分配的AppKey)和
redirect_url(回調(diào)地址)洽糟。
2>獲取用戶授權的Request Token
進行完第一步后點擊授權會返回一個用戶授權的Request Token
3>用授權的Request Token獲取Access Token
需要在UIWebViewDelegate的- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType;這個方法中獲得用戶授權成功的請求標記炉菲,也就是code=后面的內(nèi)容,用code換取Access Token,根據(jù)文檔可查此時需要傳5個參數(shù)坤溃。
一個Access Token是讓一個應用獲取一個用戶的數(shù)據(jù)
代碼:- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{
? ? ? ? ? ? ? ? ? ?//請求的URl路徑
? ? ? ? ? ? ? ? ? ?NSString*urlStr = [request.URLabsoluteString];
? ? ? ? ? ? ? ? ? ?//查找code=在urlStr中的范圍
? ? ? ? ? ? ? ? ? ?NSRangerange = [urlStrrangeOfString:@"code="];
? ? ? ? ? ? ? ? ? ?//range.length是否為nil
? ? ? ? ? ? ? ? ? if(range.location!=NSNotFound) {
? ? ? ? ? ? ? ? ?//截取code=后面的請求標記(經(jīng)過用戶授權成功地)
? ? ? ? ? ? ? ? NSIntegerloc = range.location+ range.length;
? ? ? ? ? ? ? ? NSString*code = [urlStrsubstringFromIndex:loc];
? ? ? ? ? ? ? ? //發(fā)送信息給新浪拍霜,通過code換取accessToken
}
returnYES;
}
然后需要將code的內(nèi)容傳到上文提到的5個參數(shù)(據(jù)文檔可查)中,獲取AccessToken薪介。