Oauth2.0

98 阅读2分钟

Oauth2.0是一种开放标准的授权协议,旨在允许用户授权第三方应用程序代表他们访问受保护的资源,而无需将用户名和密码提供给第三方应用程序。

Oauth2.0的原理

Oauth2.0的原理是通过授权访问令牌(Access Token)来实现身份验证和授权

Oauth2.0的主要原理和流程

  1. 注册应用程序:第三方应用程序需要在提供Oauth2.0服务的身份提供商注册,并获得商户号ID和客户端密钥。
  2. 用户授权:当用户尝试访问第三方应用程序时,应用程序会向身份提供商发送授权请求,并重定向用户到身份提供商的登录页面。
  3. 用户登录:用户在身份提供商的登录页面上输入凭据进行身份验证。
  4. 授权同意:一旦用户成功登录,身份提供商会提示用户授予第三方应用程序访问特定资源的权限。
  5. 访问令牌颁发:一旦用户授权,身份提供商会颁发一个授权访问令牌给第三方应用程序。
  6. 访问资源:访问令牌通常具有一定的有效期。如果令牌过期,第三方应用程序可以使用刷新令牌来获取新的访问令牌,而无需用户再次授权。

Oauth2.0的授权方式

  1. 密码模式:用户将用户名和密码发送给第三方应用程序,第三方应用程序直接向授权服务器请求访问令牌。这种模式较少使用。
  2. 客户端凭证模式:该模式用于应用程序自身获取访问令牌,而不涉及用户的身份验证。它比较适用于后端应用程序需要与其他应用程序进行受限资源的交互。
  3. 隐式授权模式:该模式适用于无需访问令牌刷新功能的纯前端应用程序,访问令牌直接在重定向URL中返回给客户端。
  4. 授权码模式:用户在授权页面输入用户名和密码后,服务器返回授权码,然后第三方应用程序使用授权码请求访问令牌。网站应用微信登录,QQ登录等都是采用这种方式。

image.png