您应该如何处理 oauth2 确认重定向?

What are you supposed to do with oauth2 confirmation redirects?

如果我将来自第三方服务的身份验证集成到我的应用程序中,例如 github 或 slack,当用户注册我的应用程序并成功通过第三方服务进行身份验证时,我将收到的数据是什么样的?

具体来说,如果这是用户第二次或第三次登录,并且他们之前已经注册过,我怎么知道他们已经注册了?我需要在我的数据库中存储什么数据才能知道他们是谁?

我是否需要对有关用户身份的数据执行常见的维护或保养?它会变质吗?

您收到的数据取决于您在联系第三方服务时构建的请求 uri 的 response_type 和范围参数。收到的 id_token 始终是 JSON Web 令牌 (JWT)。

当您请求 "openid" 范围时,id_token 将具有 "iss"、"sub" 声明作为令牌负载的一部分。这两个声明通过提供者是谁以及该提供者中该用户的唯一 ID 来唯一标识用户。这两个值的组合可以保存在您的数据库中,以识别用户是否已经注册。

当您使用第三方提供商并仅保存最低限度的信息(iss、sub)时,您不必跟上任何信息。当您不想处理任何维护时,这将是一个不错的方法。如果您需要与用户个人资料相关的信息,您可以在请求中请求 "profile" 范围,这将包含有关用户的更多信息。

谢谢, 索玛。