使用OAuth授权第三方网站
Contents
OAuth是一种行业标准的授权方式,我们在登录一些网站时,其也可以使用第三方账号比如QQ或者微信登录, 都是使用OAuth授权的, 版本有1.x和2.x两个,目前主要使用2.x版本,2.X版本大概有六种模式,本文介绍最常用的也是最安全的一种模式Authorization Code;
六种模式
- Authorization Code (先申请Code,再申请Token,较安全)
- Refresh Token (token过期后,避免重复登录,可以刷新Token)
- Device Code (一般用于TV等设备端,不常用)
- Password (需要再第三方网站暴露授权网站的密码,不安全)
- Implicit (不需要获取code,直接获取token,不推荐)
- Client (可以使用Client id和Client sercert 去授权网站获取客户端相关的信息,与第三方用户无关,不常用)
获取Client Id和Client Secret
我们以Github为例,我们首先需要获取Client Id和Client Secret这两样东西,直接在Github个人设置里面develop settings选项,创建一个应用;

如何请求Code
- 请求链接
|
|
- 请求参数 client_id(必填):注册Github App时的client id; redirect_uri:请求成功后重定向的网址带有code; login: 登录特定账户; scope: 授权范围,比如scope=user; state: 随机字符串,防止跨站点请求伪造攻击; allow_signup: 默认为true,是否提供注册github选项;
请求access_token
- 请求链接
|
|
- 请求参数 client_id(必填):注册Github App时的client_id; client_secret(必填):注册Github App时的client_secret; code(必填):上一个请求返回的code; redirect_uri:同上; state:同上; code只能使用一次
访问用户信息
- 我们拿到了token就可以访问我们github上的信息了;
- 请求链接;
|
|
- 在headers里面增加一个字段
|
|
postman请求返回示例
