授权码模式

752 阅读2分钟

授权码模式(authorization code)是OAuth 2.0定义的四种授权方式之一。是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的认证服务器进行互动。

名词定义

(1)Resource Owner:资源所有者,本文中又称"用户"(user)。

(2)User Agent:用户代理,本文中就是指浏览器。

(3)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。

(4)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

授权码模式执行步骤:

(A)用户访问客户端,后者将前者导向认证服务器。

(B)用户选择是否给予客户端授权。

(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。

(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。

总的来说, OAuth能让用户的比如用户名密码等信息更加安全。第三方能够在不知道用户账号密码的情况下访问,并且能限制收到令牌的客户端的数据访问期限和访问地点。也只能自己使用,不能够转让或泄露密码。能够随时的废除令牌,想要再次访问就要重新申请。