OAuth2相关

OAuth的,可以理解为【第三方】想取得【用户】在【系统】内的信息,【用户】同意后,【系统】授予【第三方】访问用的【令牌】,在优先的时间内,进行有限的访问。
【第三方】的目的是取得的【系统】内的信息,方法是使用授权用的【令牌】,手段是让【用户】进行授权。

角色划分

英文 中文 说明 备注
Third-party application 第三方应用程序 第三者,想要用户存在其他服务器上的信息 ----
HTTP service HTTP服务提供商 即系统,存有用户的信息 ----
Resource Owner 资源所有者 即:用户 ----
User Agent 用户代理 浏览器,客户端 ----
Authorization server 认证服务器 认证用服务器,属于系统的 ----
Resource server 资源服务器 接口请求,处理用接口 ---

四种方式

状态 简易说明 特征 备注
授权码(authorization-code) 利用链接跳转的方式,授权码->令牌 前后端结合的方式 最常用,安全性高
隐藏式(implicit) 利用链接跳转的方式,直接取得令牌 纯前端 安全性有限,因此,一般有效期是session
密码式(password) 用户给出服务器用户名和密码,然后服务器用用户名密码取得令牌 基本没见过
客户端凭证(client credentials) 只是一个身份确认,一般权限比较低 --- 对第三方的凭证,感觉上类似于心跳了

以授权码为例:

  1. A站生成一个B站的授权码请求链接(包含A站的回调地址)。发给用户,让用户跳转。
  2. 用户跳转后,用户在B站进行登录,B站询问用户是否同意授权给A站。
  3. 用户同意后。B站根据授权码请求链接中的回调地址,对A站的接口进行回调,在回调请求中附带【授权码】
  4. A站取得【授权码】之后,A站使用【授权码】请求B站,得到【令牌】
  5. A站使用【令牌】访问A站里,用户的信息。

一些名词

状态 说明 作用方向 备注
response_type 模式,如code标识授权码模式 请求授权时 ---
redirect_uri 回调地址 请求授权时 ---
scope 授范围,如all 请求授权时 ---
grant_type 授权方式,如authorization_code,password等 取得令牌时 ---
posted @ 2020-02-26 13:51  常烦常乐  阅读(138)  评论(0编辑  收藏  举报