QAuth2认证 -- ( 不使用友盟等 )自己实现第三方登录(UIWebView)、微博分享、等其他操作
来源:互联网 发布:java包装简历 编辑:程序博客网 时间:2024/05/16 14:22
主要查看开发者平台上得文档,这里举个简单的例子
QAuth2认证,分为两步:
1:第一步:获得请求token;
2:第二步:获得授权token;
//注:更多相关方面的内容,可以到相应的开发者平台上查看文档。
这里使用sina为例,其他的都一样,可以到其他开发者平台注册开发者账号,获取appKay,查看响应的文档即可。
#import "LoginViewController.h"#import "ASIFormDataRequest.h"@interface LoginViewController ()<UIWebViewDelegate, ASIHTTPRequestDelegate>{ UIWebView* _webView;}@end@implementation LoginViewController- (void)viewDidLoad { [super viewDidLoad]; _webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; _webView.delegate = self; [self.view addSubview:_webView]; [_webView release]; //请求token的url NSString* url = @"https://api.weibo.com/oauth2/authorize?client_id=1412145014&redirect_uri=http://www.baidu.com"; NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; [_webView loadRequest:request];}#pragma mark -- 实现UIWebViewDelegate//当webView 每次加载页面时,即会调用此方法,其中 request.URL.absoluteString 是加载地址- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSArray* array = [request.URL.absoluteString componentsSeparatedByString:@"?code="]; if (array.count == 2) { //取出请求token NSString* token = array[1]; //发起请求,获取访问token ASIFormDataRequest* request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"https://api.weibo.com/oauth2/access_token"]]; request.delegate = self; //设置参数 //app key [request setPostValue:@"1412145014" forKey:@"client_id"]; //app secret [request setPostValue:@"268b02d5456a899280382fc80c011884" forKey:@"client_secret"]; [request setPostValue:@"authorization_code" forKey:@"grant_type"]; //code [request setPostValue:token forKey:@"code"]; //redirect_uri [request setPostValue:@"http://www.baidu.com" forKey:@"redirect_uri"]; //发起请求 [request startAsynchronous]; return NO; } return YES;}- (void)requestFinished:(ASIHTTPRequest *)request{ NSLog(@"%@", request.responseString); NSDictionary* dic = [NSJSONSerialization JSONObjectWithData:request.responseData options:0 error:nil]; //把access_token 存到本地 NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:dic[@"access_token"] forKey:@"token"]; [userDefaults setObject:dic[@"uid"] forKey:@"uid"]; [userDefaults synchronize]; [self.navigationController popViewControllerAnimated:YES];}- (void)requestFailed:(ASIHTTPRequest *)request{ NSLog(@"请求访问token失败");}@end
0 0
- QAuth2认证 -- ( 不使用友盟等 )自己实现第三方登录(UIWebView)、微博分享、等其他操作
- Android 用官方SDK实现第三方(qq、微信、微博等)分享和登录
- 友盟第三方实现qq等分享
- 第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
- 基于Qt下移动平台第三方接入-ShareSDK(新浪微博,微信朋友圈等分享登录)
- 通过使用第三方SDK来实现应用的分享,第三方登陆,数据信息统计等功能(ShareSDK)。
- 使用友盟社会化分享组件实现第三方登录
- Android 调用系统分享(不使用第三方),指定QQ、微信等
- springmvc项目里第三方登录(百度,QQ,微信,人人,新浪微博等)
- qq分享,第三方登录等,要注意的问题
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- C++实现软件版本号管理类
- ArcGIS教程:Geostatistical Analyst 应用示例
- MYSQL select时锁定记录问题
- Android Studio http://schemas.android.com/apk/res/android “URI is not registered”解决方案
- 自定义ContentProvider以及ContentObserver的使用完整详细示例
- QAuth2认证 -- ( 不使用友盟等 )自己实现第三方登录(UIWebView)、微博分享、等其他操作
- Removing Columns - CodeForces 496 C 水题
- 早来的圣诞礼物!--android 逆向菜鸟速参手册完蛋版
- 客户端升级架构
- 【C语言】递归实现元素的全排列和子集
- Project Eluer - 20
- 04数据挖掘原理-数据分析 数据描述
- 第三十篇:Windbg的基础知识
- Wifi 资源整理