Fangjian

FE / 生活是一种态度

导航
 » 主页
 » 项目
 » Github
 » 关于我

OAth2.0基于Node实践 [node]

27 Oct 2017 » node

OAth2.0 详解

1.引导需要授权的用户到 web 授权页面

uri = "http://dcg.tuchong.com/oath2/authoriza?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI"
  • oath2/authoriza: API 服务提供方的授权页面

  • client_id=YOUR_CLIENT_ID: 服务提供方给当前应用分配的 app_key

  • response_type=code: 为返回的授权码类型,一般为 code,如果有提供多种获取授权的方式,则会有其他值可选

  • redirect_uri=YOUR_REGISTERED_REDIRECT_URI: 为授权成功后的回调地址,如果用户点击【确认授权】, 则API服务提供方会引导浏览器跳转到此地址,同时会在URL中加上参数 code = AUTHORIZATION_CODE(用于获取 access_token 的 code)


2.用户同意授权

如果用户同意授权,则跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE,生成用于获取 access_token 的 authorization_code,跳转回申请授权的应用

说明:出于安全考虑,API 服务提供方会对 redirect_uri 指定的回调地址进行检查,只有符合申请应用 app_key 时设置的回调地址规则才能正确显示授权页面,防止非法程序冒用当前应用来申请对用户的授权


3.应用接收到第二步中回调的 code 之后,请求一下地址获得 access_token

access_token: "http://dcg.tuchong.com/oauth2/access_token?clien_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE"
  • client_id: 服务提供方给当前应用分配的 app_key [一般都不会改变]

  • client_secret: 当前应用对应的 app_secret,通过它和 app_key 来确定应用的身份,当此 app_secret 泄露时,可以为应用设置一个新值

  • grant_type: 换取 access_token 的 code 的类型,当有多种授权方式时才需要提供此参数

  • redirect_uri: 当前用于接收 authorization_code 的回调地址,基于安全考虑,API提供方一般要求校验此值

  • code: API 服务提供方回调时传过来的 authorization_code

如果换取 access_token 成功,则返回

{
	"access_token": "S1AV32hkKG",
	"remind_in": 3600,
	"expires_in": 3600
}

说明:

  • access_token 为本次授权申请所获得的授权码,在执行后续的 API 请求时需要同时提供此 access_token 以验证当前用户的身份

  • remind_in 和 expire_in 为此 access_token 的有效期相关信息,基于对安全的考虑,每个 access_token 都有有效期限限制,超过一定时间后应用需要重新向用户申请授权,这个有效期一般与不同的 API 应用提供商及其对应用的评级有关


4.在成功获取到 access_token 后,使用获得的 OAuth2.0 Access Token 调用 API

在请求 API 时一般需要带上以下两个参数:

  • source : 当前应用的 app_key

  • access_token : 第三步获取到的 access_token

接口

  • oath2/authoriza (必须): 请求用户授权 token

  • oath2/access_token (必须): 获取授权过的 access token

  • oath2/get_token_info: 授权信息查询接口,用于查询access_token 信息

  • oath2/revokeoauth2: 回收接口,回收授权,相当于注销

相关文章