2017-09-14 26 views
0

与提供商认证之后,应用程序通常将同时接收的ID和令牌代表用户的接入令牌。现在看来有两种方法可以断言用户是谁。ID令牌或/用户信息用于标识断言

  1. 验证ID令牌,然后读取ID令牌。
  2. 将访问令牌传递给userinfo端点并读取JSON响应。

两者似乎都是可接受的途径,但是在某些情况下应该使用哪一种?

回答

2

如果您有两个令牌并且ID令牌包含您需要的所有信息,则可以使用任一方式。下面是来到我的脑海一些区别:

  • 验证和读取ID令牌可以无需访问它的OAuth2服务器来完成(如果你有自己的证书已经下载到本地),这使得它更快,有较少的可能处理错误 - 无网络请求。
  • 如果用户信息经常变化,一个ID令牌可能包含过时的数据,但几乎不是这种情况。
  • 访问令牌可以被吊销(ID令牌不能),所以如果你需要它,他们会更好地完成这项工作。
1

除了技术差异之外,还存在语义差异:id_token及其中的信息表示并标识经过验证的用户。该用户“存在”并登录到应用程序。

access_token,并从用户信息终端返回的信息代表关于谁发出的访问令牌来呈现它的实体的用户信息。该用户不需要“存在”或登录(再)。

id_token通常是“一次性使用”,而access_token通常可以使用很短的时间。

现在,在这两个令牌发放,并在当用户与ID连接,所述两个重叠记录在相同的时间接收到的情况。

相关问题