是否可以将 "get token" 和 "get userinfo" 这一步合二为一?

Is it possible to combine the "get token" and "get userinfo" step into one?

在Authorization Code Flow中,客户端通常一步获取id tokenaccess token,然后通过访问令牌到用户信息端点以在第二步中获取实际数据。

就 OpenID Connect 而言,是否可以将这些步骤合二为一,这样从客户端到 OpenID 提供者的一次往返就足够了?

N.B。访问令牌的实际内容取决于 OpenID 提供商的实施者,因此理论上我可以将数据放在那里 - 但这似乎不是好的做法,是吗?

根据 OpenId Connect spec:

ID Tokens MAY contain other Claims.

并且规范也定义了一套标准claims

如果id token包含您想要的用户信息声明,您可以直接从id token中获取这些用户信息声明。