OAuth2.0授权原理及开发流程详解

OAuth2.0授权原理及开发流程详解

程序员小强 1天前

OAuth2.0在认证和授权的过程中参与的几个角色如下:

Client - 第三方应用,

下面以小明使用qq登陆本站为例来讲解OAuth2.0授权原理(小明为Resource Owner,本站36nu.com为Client,qq授权服务器为Authorization Server,提供小明qq基本信息的服务器为Resource Server)

1 小明点击使用qq登陆本站,本站请求qq的OAuth登录页

请求的接口大致如下

https://graph.qq.com/oauth/...&client_id=100490398&redirect_uri=xxx

这个URL称为Request Token URL - 未授权的令牌请求服务地址,要带两个参数client_id和redirect_uri,client_id是在qq互联申请的appid,redirect_uri是用户账号密码输入正确后跳转到的地址。本站身份验证通过后,跳转到qq登陆页面

2 小明使用qq号登陆并授权

小明登陆成功后,QQ在回调地址中加入了一个code参数给本站,例如:

/callback?code=xxxxxx

此code即Authorization Code,有效期一般很短

3 本站通过Authorization Code获取Access Token

本站使用上一步返回的code及appid和appkey去qq获取Access Token,接口地址例如:

https://graph.qq.com/oauth2.0/token?&client_id=100490398&client_secret=xxx&code=xxx

这个URL称为User Authorization URL - 用户授权的令牌请求服务地址,client_id即appid,client_secret即appkey,code为上一步得到的code,这个接口调用成功后会返回access_token和refresh_token,access_token的是有有效期的,过期后需要用户重新授权才能获得新的Access_Token。为避免用户再次授权的操作,提升用户体验,可以使用refresh_token重新获取有效的access_token

4 使用access_token获取小明的头像,区域,性别等基本信息

使用access_token去请求qq的相关openApi(Resource Server)即可获取到需要的信息

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值