举杯邀月

第三方授权登录 - 新浪微博 授权

摘要:第三方登入太常见了,他们让我们登陆更加方便,直接授权就可以进入,现在各大平台也都基本支持第三方登陆,如微信,微博,QQ...总有一个你用过。

为了吸纳用户、提高网站的用户体验性,现在很多网站都采取第三方登陆,比较常用的就是微信、QQ、微博了,这里我们说的是 新浪微博 第三方授权的网页登陆。

首先需要注册 新浪微博账号并添加 ‘网站应用’
新浪微博开放平台:https://open.weibo.com

添加网站应用前需要先提交认证审核,然后添加完网站应用再提交应用审核。

创建完应用后会有一个 App Key 和 App Secret。

总体流程

1.获取 code

第三方客户端引导用户发送get请求

https://api.weibo.com/oauth2/authorize
1

参数:

参数名 是否必须 含义
client_id 申请应用时分配的AppKey。
redirect_uri 授权回调地址。
scope 申请scope权限所需参数,可一次申请多个scope权限,用逗号分隔。
state 用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数
display 授权页面的终端类型,取值见下面的说明。
forcelogin 是否强制用户重新登录,true:是,false:否。默认false。
language 授权页语言,缺省为中文简体版,en为英文版。

这时会跳转到登入授权页面,授权后新浪微博会向客户端返回到我们的创建应用的时候填写的那个回调地址。并且带着code参数

2.通过 code 获取 access_token

有了code,我们在通过 App KeyApp Secretcode等参数去发送 post 请求,获取 access_token

https://graph.qq.com/oauth2.0/token
1

注意,虽然是post请求,但是参数是通过get传递的
参数:

参数名 是否必须 含义
client_id 申请应用时分配的AppKey。
client_secret 申请应用时分配的AppSecret。
grant_type 请求的类型,填写authorization_code
code 调用authorize获得的code值。
redirect_uri 回调地址,需需与注册应用里的回调地址一致。

返回数据包括 access_token 、uid等信息:

 {
       "access_token": "ACCESS_TOKEN",
       "expires_in": 1234,
       "remind_in":"798114",
       "uid":"12341234"
 }
1
2
3
4
5
6
3.用 access_token 获取用户信息

get请求地址:

https://api.weibo.com/2/users/show.json
1

参数:

参数名 是否必须 含义
access_token 采用OAuth授权方式为必填参数,OAuth授权后获得。
uid 需要查询的用户ID。
screen_name 需要查询的用户昵称。

注意:参数uid与screen_name二者必选其一,且只能选其一。

我们可以用第二步返回的 access_token 与 uid 尽心访问获取用户信息

到这里我们就已经获取到用户的信息,当然微信的开放平台里还有其他很多的接口,这里仅仅是为了登陆获取到用户信息即可。

更多细节或接口参考官方文档:https://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc70770d0246.html

2020-06-10 标签: 三方授权登录