OAuth 授权所需信息
1.应用名称
2.应用网站
3.重定向URI或回调URL(redirect_uri)
4.客户端标识client_id
5.客户端**client_secret

OAuth2协议认证流程

点击授权--------->地址栏信息:
https://abcdefg.com/abcd123/12432154321?client_id=15342534dfgtwa&redirect_url=https:1243324fdqwrdf&response_type=code&state=124325324543264rdfged

(client_id,唯一地标识了客户端应用)
(response,重定向的url,点击授权确认之后会跳转到客户端某一个链接上)
(response_type=code&state=,授权的类型,在授权码协议中固定死的就是code,state是本地状态,客户端网站生成的一个随机数,这个随机数是储存起来的,当确定授权之后,资源服务器会将这个数发给客户端网站,同时带上名字为code的一个参数信息,客户端核对是否正确,防止CSRF攻击(跨站请求伪造))。

OAuth2协议认证流程
步骤:
1:客户端向资源拥有者发送授权请求。
2:客户端获得授权者的一个授权许可。
3:客户端把许可再发送给授权服务器进行验证。
4:授权服务器颁发一个Access Token令牌给客户端。
5:客户端拿着令牌去资源服务器获取账号信息。
6:资源服务器返回一个受保护的资源。

OAuth2协议认证流程

例如:使用Ruby China 时候需要github授权

client(客户端 Ruby China)
Resource Owner(资源拥有者,github用户)
Authorization Server(授权服务器)
Resource Server(资源服务器,github)

  1. Ruby China向github用户发送授权请求
  2. Ruby China 获得 github用户的授权许可
  3. Ruby China 把许可再发送给授权服务器(Authorization Server)进行验证
  4. 授权服务器(Authorization Server)颁发一个令牌(Access Token)给客户端。
  5. Ruby China拿着令牌去资源服务器(github服务器)获取账号信息。
  6. github服务器返回一个受保护的资源给Ruby China

相关文章: