3

在收到有效的访问令牌后,是否认为最佳做法是调用userinfo端点调用并检索用户元数据,以便对应用程序的每个后续调用,或者是否应该userinfo调用一次,并存储用户元数据响应例如,在 cookie 中,以便后续请求从 cookie 读取用户元数据,而不是userinfo为每个请求调用调用。

4

1 回答 1

4

最后,它取决于用例:

在普通消费者用例中,用户信息端点将提供很少更改的信息,并且缓存信息是一个安全的假设。然而,在某些企业用例中,用户信息端点可能会提供用于实时访问控制决策的信息,在这种情况下,缓存信息可能不明智,或者至少不会长时间缓存。

但是您的客户甚至可能不依赖于更改的数据,例如,如果它唯一使用的是持久标识符 ( sub) 和given_name/family_name声明。然后,即使从用户信息端点返回的其他数据可能会随时间变化,您的客户端也不会打扰,而是缓存subgiven_name并且family_name无需再次调用用户信息端点。

此外,声明也可以作为id_token(例如 incl. first_name family_name)的一部分返回,这对于某些用例可能已经足够,因此根本不需要调用用户信息端点。

总之:它取决于从用户信息端点返回的信息类型、客户端对信息的要求以及id_token.

于 2015-07-20T16:14:00.163 回答