OAuth认证总结(以微博为例,仅个人学习总结)
前言:OAuth是一种协议,OAuth协议为用户资源的授权提供了一个安全开放又简易的标准。
最开始进入新浪官网成为开发人员,并设置应用信息。
1>获取未授权的Request Token
实际上就是打开�新浪提供的登录页面,根据文档会有两个必选参数client_Id(申请应用时分配的AppKey)和
redirect_url(回调地址)。
2>获取用户授权的Request Token
进行完第一步后点击授权会返回一个用户授权的Request Token
3>用授权的Request Token获取Access Token
需要在UIWebViewDelegate的- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType;这个方法中获得用户授权成功的请求标记,也就是code=后面的内容,用code换取Access Token,根据文档可查此时需要传5个参数。
一个Access Token是让一个应用获取一个用户的数据
代码:- (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=后面的请求标记(经过用户授权成功地)
NSIntegerloc = range.location+ range.length;
NSString*code = [urlStrsubstringFromIndex:loc];
//发送信息给新浪,通过code换取accessToken
}
returnYES;
}
然后需要将code的内容传到上文提到的5个参数(据文档可查)中,获取AccessToken。