首页 > 代码库 > iOS开发项目篇—17OAuth授权过程
iOS开发项目篇—17OAuth授权过程
iOS开发项目篇—17OAuth授权过程
一、网页演示
1.打开开放平台的地址
2.创建应用
3.填写个人开发者信息
4.创建新的应用
5.查看微博提供的api接口
6.在这里使用的是OAuth2
7.接口的完整说明
说明:提供的URL就是登陆界面
8.创建后的应用信息
9.不能直接访问提供的URL,还需要传入必要的参数
传入必要的参数:
client_id true string 申请应用时分配的AppKey // 得知道给哪个应用授权
redirect_uri true string 授权回调地址 // 授权成功后跳转到哪个页面
说明:
点击应用信息-->高级信息,设置授权回调页
传入两个参数后
点击文顶顶微博后,跳转到回调地址所在页面
10.关联账号
关联账号之后,可以使用该账号进行登录
注意:未通过审核的应用只能关联15个账号,除了添加的可以关联的这15个账号可以给应用授权之外,开发者自己也可以用自己的账号对应用进行授权,应用他的账号本身也是微博账号。
11.使用账号登录,授权
授权成功后,会自动跳转到回调页面
提示:注意清除网页缓存。
二、授权过程的说明
(一)文顶顶微博 ---> 用户的微博数据
1.成为新浪的开发者(加入新浪微博的开发阵营)
* 注册一个微博帐号,登录http://open.weibo.com
帐号:XXXXXXX
密码:XXXXX
* 填写开发者的个人信息(比如姓名、出生日期、上传身份证)
2.创建应用
* 假设应用名称叫做“黑马微博”
* 应用创建完毕,默认就进入“开发”阶段,就具备了授权的资格
* 应用相关数据
App Key:3141202626 // 应用的唯一标识
App Secret:ee9de4d2431be061b22fe328332a5228
Redirect URI:http://www.itheima.com
3.用户对“黑马微博”进行资源授权----OAuth授权2.0
(1) 获取未授权的Request Token : 展示服务器提供商提供的登录页面
* URL : https://api.weibo.com/oauth2/authorize
* 参数
client_id true string 申请应用时分配的AppKey // 得知道给哪个应用授权
redirect_uri true string 授权回调地址 // 授权成功后跳转到哪个页面
(2) 获取授权过的Request Token
* 授权成功后,自动跳转到回调页面,比如
http://http://www.cnblogs.com/wendingding/?code=eabdc03cc4cc51484111b1cfd9c4cd0b
// 新浪会在回调页面后面拼接一个参数:授权成功后的Request Token
(3) 根据授权过的Request Token换取一个Access Token
* URL : https://api.weibo.com/oauth2/access_token
* 参数
client_id true string 申请应用时分配的AppKey。
client_secret true string 申请应用时分配的AppSecret。
grant_type true string 请求的类型,填写authorization_code
code true string 调用authorize获得的code值。
redirect_uri true string 回调地址,需需与注册应用里的回调地址一致
* 返回结果
{
"access_token" = "2.00vWf4GEUSKa7D739148f7608SXA9B";
"expires_in" = 157679999;
"remind_in" = 157679999;
uid = 3758830533;
}
// uid == user_id == 当前登录用户的ID == 用户的唯一标识
{
"access_token" = "2.00vWf4GEUSKa7D739148f7608SXA9B";
"expires_in" = 157679999;
"remind_in" = 157679999;
uid = 3758830533;
}
* access_token和uid
access_token : 1个用户给1个应用授权成功后,就获得对应的1个access_token,作用是:允许1个应用访问1个用户的数据
uid:1个用户对应1个uid,每1个用户都有自己唯一的uid
*举例:
张三
李四
应用1
应用2
张三给应用1、应用2授权成功了:1个uid、2个access_token
李四给应用2授权成功了:1个uid、1个access_token
上面操作:产生了2个uid,3个access_token
(二)授权过程中常见错误:
1.invalid_request
(1) 没有传递必填的请求参数
(2)请求参数不对
(3)URL中间留有空格
2.invalid_client
(1)client_id的值传递错误(AppKey不对)
3.redirect_uri_mismatch
(2)回调地址不匹配
(三)授权帐号注意
1.如果应用还没有经过新浪审核,只能访问自己或者其他15个测试帐号的微博数据
三、授权过程图示