微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何关联不同的 Oauth2 登录?

如何解决如何关联不同的 Oauth2 登录?

我有一个带有 2 个登录选项的 web 应用程序:使用您的 Github 帐户或您的 GitLab 帐户。

目前,这两个登录被视为不同的帐户:使用 Github 登录,仅查看您的 Github 存储库;使用 GitLab 登录,仅查看您的 GitLab 内容

但是,我注意到 Coveralls.io 等应用程序设法链接登录信息:如果您使用 Github 和 GitLab 登录,那么您将看到所有存储库(Github GitLab 存储库,无论如何您选择的未来登录选项)。

那么,Coveralls 如何知道它是同一个用户

在 StackOverflow 中也一样:如果我最初使用 Github 进行身份验证,则会获得一个帐户,如果稍后我使用 GMail 进行身份验证,则它是同一个帐户。这是如何实现的?

我能想到的唯一选择是在不同的 Oauth 提供商处注册的电子邮件地址:如果相同,则将不同的登录名连接到同一帐户。

解决方法

这是可行的,因为相关应用将通用用户帐户与与每个 OAuth 提供者相关的身份相关联。

您可以在 https://jumpstartrails.com/(由 https://gorails.com/ 的创建者 Chris Oliver 创建的 SaaS 应用程序)中看到一个示例。该应用程序实现了这种模式。

此外,Chris 的 GoRails 视频可以解释该方法:

使用 Omniauth 登录多个 OAuth 提供商: https://gorails.com/episodes/login-with-multiple-oauth-providers?autoplay=1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。