gpt4 book ai didi

oauth - 缩短社交登录流程

转载 作者:行者123 更新时间:2023-12-02 00:45:27 24 4
gpt4 key购买 nike

注意:这是我第一次尝试实现社交登录 API,所以感谢您对我的包容和帮助!

我正在开发一个网络应用程序,并且我已经开发了一个登录和注册系统。现在,我正在考虑添加 Facebook 和 Google+ 登录 - 带有后端。我浏览了他们的文档和其他教程,他们需要实现很多东西。

但是,由于我已经有一个注册系统,所以我想做这样的事情:

  1. 登录页面上有社交登录按钮。
  2. 例如,当用户点击社交登录按钮并授权应用时,系统会从 Google+ 返回用户数据。
  3. 现在,是否可以仅使用返回的数据(在用户授权后)并使用我已有的注册系统进行正常注册吗?

以下是我认为这样做的优点:

  1. 不需要额外的代码或数据库字段(例如 token ID 等)
  2. 用户可以随时为其帐户添加密码,并登录网站或通过 Facebook 或 Google+ 登录来访问其帐户(前提是他们使用相同的电子邮件 ID)。
  3. 使用社交登录提供商的 API 一次就足够了 - 用户第一次登录时(从技术上讲,这会将用户注册到网站)。

我知道遵循完整的 OAuth2 实现的优点是相同的,但是它有什么区别?

现在我的问题是:

  1. 可以如上所述缩短社交登录吗?
  2. 这样做我会失去任何明显的优势吗(假设我已经有了注册系统)?
  3. 如果是,是否还有其他人缩短了其网站的流量?

最佳答案

您提出的系统存在一定的缺陷,尤其是与安全相关的缺陷。我会给你明确的答案:

You will send data from client after getting it from google+ or other provider and use your registration process implicitly.

这种方法是错误的,因为我自己作为攻击者可以使用我的应用程序的 clientid 从 google+ 向您发送数据。您会使用我发送的信息注册或登录吗?如果你这样做的话,我可以假装成你系统中的任何人。

  1. Is it OK to cut short on the social login as mentioned above?
  2. Will I be losing any obvious advantage doing so (given that I already have a registration system in place)?
  3. If yes, is anyone else cutting short on the flow in their website?
  1. 没有。 (见上面的原因)。
  2. 没有。您不会失去优势,因为您已经拥有适当的系统。大多数网站都有一个用于正常注册的系统。他们利用它来提供 oauth 登录。有人会说密码很麻烦之类的,但是所有著名的网站都提供登录名和密码,包括SO。

现在问题来了,鉴于您已经有了一个系统,如何简化 oauth 系统。

我推荐这个(我假设 Google 作为提供商)流程,其中以点开头的内容是您需要做的:

    • 您有一个 Google 登录按钮。
  1. 用户点击 Google 按钮。
  2. 用户被重定向到 Google 网站。
  3. 用户授予您权限。
  4. Google 会重定向并为您提供 token 。
    • 您现在可以将信息和 token 发送到您的服务器。 (您只需发送 token ,因为后端将获取信息。否则,拥有您网站的有效 google+ token 的用户可以向您发送任何信息)。
    • 后端验证 token 并匹配“aud”是否等于您的客户端 ID。或者它可以通过图书馆发生。您只需提供您的客户 ID。
    • 如果是 Google+,后端会从 token 获取个人资料信息(姓名、电子邮件),同时验证您可以在注册过程或登录过程中存储哪些信息(如果该电子邮件已存在)。您也可以存储用户的谷歌ID。这很有用,因为某些提供商(例如 Facebook)并不总是为每个帐户提供电子邮件。 (有些 Facebook 不提供电子邮件,但大多数情况下它会给您电子邮件。)
    • 后端发回 session 信息或 jwt token 或任何其他时间有限的进程,告知用户已登录。

您的用户也可以通过电子邮件登录。如果他还没有注册,那么他需要注册。否则,他可以使用忘记来设置密码,或者从帐户设置中设置密码。

您还需要小心,如果同一用户通过不同的提供商进行连接,他需要在您的系统中拥有相同的帐户,您可以通过电子邮件进行处理。

关于oauth - 缩短社交登录流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37163110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com