OAuth授权之回调accessToken

具体说明见新浪官方文档

http://open.weibo.com/wiki/Oauth2/access_token

具体实现

第一步 打开回调页面

// 宏定义client_id

#define kClientId @“xxx"

// 宏定义回调地址

#define kRedirect_Uri @"xxx”

// 宏定义client_secret

#define kClient_Secret @“xxx"

1、添加webView

UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

webView.delegate = self;

[self.view addSubview:webView];

2、加载授权页面

NSString *oauthPath = [NSString stringWithFormat:@"https://api.weibo.com/oauth2/authorize?client_id=%@&redirect_uri=%@", kClientId, kRedirect_Uri];

NSURL *url = [NSURL URLWithString:oauthPath];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

[webView loadRequest:request];

/**

*  当webView发送一个请求之前都会先调用这个方法, 询问代理可不可以加载这个页面(请求)

*

*  @return YES : 可以加载页面,  NO : 不可以加载页面

*/

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

// 第二步 取得请求参数

// 1.请求返回的URL的绝对路径 http://www.baidu.com/?code=a0872f25a06acf714a4067266a2eeaf4

NSString *requestUrlPath = request.URL.absoluteString;

// 2.获取 ?code= 的范围

NSRange range = [requestUrlPath rangeOfString:@"?code="];

// 3.如果在requestUrlPath中找到了?code= 进行截取

if (range.length) {// if (range.location != NSNotFound) 同左

// 在?code=位置上加上?code=的长度即为?code=后面的字符串

int loc = range.location + range.length;

NSString *code = [requestUrlPath substringFromIndex:loc];

// 第三步 通过POST传递参数体获得accessToken

  // AFNetworking框架

  // 创建请求管理对象

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

// post方式访问需要传递参数体,拼接需要传递的参数

NSMutableDictionary *askParams = [NSMutableDictionary dictionary];

askParams[@"client_id"] = kClientId;

askParams[@"client_secret"] = kClient_Secret;

askParams[@"grant_type"] = @"authorization_code";

askParams[@"code"] = code;

askParams[@"redirect_uri"] = kRedirect_Uri;

// 发送post请求

[manager POST:@"https://api.weibo.com/oauth2/access_token" parameters:askParams success:^(AFHTTPRequestOperation *operation, id responseObject) {

XYLog(@"%@--responseObject", responseObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

XYLog(@"%@--error", error);

}];

}

return YES;

}

POST请求需要拼接的参数包括

/**

client_id string 申请应用时分配的AppKey。

client_secret string 申请应用时分配的AppSecret。

grant_type string 请求的类型,填写authorization_code

code           string 调用authorize获得的code值。

redirect_uri string 回调地址,需需与注册应用里的回调地址一致。

*/  (参见  http://open.weibo.com/wiki/Oauth2/access_token)

返回值 例子如下

{

"access_token": "ACCESS_TOKEN",

"expires_in": 1234,

"remind_in":"798114",

"uid":"12341234"

}

时间: 2024-08-01 17:06:17

OAuth授权之回调accessToken的相关文章

iOS_微博OAuth授权_取得用户授权的accessToken

最终效果图: OauthViewController.m // // OauthViewController.m // 20_帅哥no微博 // // Created by beyond on 14-8-5. // Copyright (c) 2014年 com.beyond. All rights reserved. // 授权控制器,仅运行一次,取得了当前用户的access_token和uid之后,存档,切换窗口的主控制器 #import "OauthViewController.h&quo

第三方登录(OAuth授权)(如何进行新浪OAuth授权)

OAuth授权:是一种可以让第三方在不接触用户的账号的密码的同时对第三方程序授权. 如何进行新浪OAuth授权: 1,成为新浪的开发者(入会) 利用自己的新浪微博账号登录:open.weibo.com   新浪开放平台 2,创建应用程序(拿到身份证) 点击首页的创建应用按钮->填写应用名称/地址/分类/平台等等 应用名称:将来发布微博显示的微博 应用地址:点击微博跳转到的网页 身份证:App Key App Secret 3.开始授权 ->获取授权的RequestToken(获取新浪提供的登陆

ios 新浪微博Oauth授权失败 (error:redirect_rul_mismatch)

原因:移动端应用Oauth授权,不需要填写回调地址,不像web端,把下面的地址删除即可 ps:实际上他是有回调的,地址为:http:// ios 新浪微博Oauth授权失败 (error:redirect_rul_mismatch),布布扣,bubuko.com

IOS OAuth授权分析

一.黑马微博 ---> 用户的微博数据1.成为新浪的开发者(加入新浪微博的开发阵营)* 注册一个微博帐号,登录http://open.weibo.com帐号:[email protected]密码:ios4762450* 填写开发者的个人信息(比如姓名.出生日期.上传身份证) 2.创建应用* 假设应用名称叫做"黑马微博"* 应用创建完毕,默认就进入"开发"阶段,就具备了授权的资格* 应用相关数据App Key:3141202626 // 应用的唯一标识App

微信公众账号开发之微信登陆Oauth授权-第一篇

我曾经在2012年的时候开始研究微信,那时微信的版本还是处于1.0,当时给朋友帮忙做一个基于微信端的web应用,官方的文档是相当少的,百度搜索出来的东西基本也没有多少实用价值,不过是在官网的基础上作了很少一些改动,就傲骄的发上去说是原创.目前的微信文档已经完善了很多,不过就我个人而言,仍过于有些宽泛,应该详细的地方未做补充,甚至是官方的SDK都有问题(其中有一个微信支付模块下的单词拼错了),给开发者带来不少困扰. 趁着现在手上的事情不多,我打算做一期微信的开发专栏,把每个步骤都尽可能的记录下来,

【IOS】App中OAuth授权的实现方式

OAuth 授权在 iOS 中的实现方式 在 iOS App 中,需要绑定微博.twitter.flickr 等第三方平台账号时,一般用OAuth 授权的方式. OAuth 1.0 授权大致分为以下三步: 客户端向平台申请一个 request token,该 token 是未授权的: 客户端打开平台提供的登陆页面,引导用户输入用户名密码,对 request token 进行授权. 登陆页面的 url 中会附带一个 redirect_url,当授权成功后会重定向到这个地址,返回客户端. 客户端拿着

OAuth授权过程

什么是OAuth授权? 一.什么是OAuth协议 OAuth(开放授权)是一个开放标准,所谓OAuth(即Open Authorization,开放授权),它是为用户资源授权提供了一种安全简单的标准, 允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息. 而这种授权无需将用户提供用户名和密码提供给该第三方网站而是直接从服务商提供的页面直接登录. OAuth允许用户提供一个访问标记(专业点叫做令牌)给第三方网站,一个访问标记(专业点叫做令牌)对应一个特定的第三方网站,同时该访问标

[iOS微博项目 - 2.0] - OAuth授权3步

A.概念 OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的.oAuth是Open Authorization的简写. B.使用3步骤 OAUTH认证授权就三个步骤,三句话可以概括: 1. 获取未授权的Request Token 2. 获取用户授权的Request Token 3. 用授权的Requ

OAuth授权登录

一.写在前面 日常生活中,我们经常看到到一个网站时,需要登录的时候,都提供了第三方的登录,也就是说你可以使用你的微信,QQ,微博等账号进行授权登录.那么这个认证登录的东西到底是什么呢? 微信授权登录页面 或者说你实现这样的授权登录,该怎么做呢?我觉得思路: 首先是登录的网站时,去在第三方登录后,第三方回调登录网站的接口,然后网站这边拿到第三方的已经登录状态,就可以在网站本身登录了.就相当于微博微信就是你的登录用户名和密码的校验. 二.OAuth授权登录 解决上面的问题,就能用到OAUTH协议.