缩短社交登录流程

凯文

注意:这是我第一次尝试实现社交登录API,因此感谢您的支持和帮助!

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

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

  1. 在登录页面上具有社交登录按钮。
  2. 例如,当用户单击社交登录按钮并授权应用程序时,将从Google+返回用户数据。
  3. 现在,可以继续使用返回的数据(在用户授权后)并正常执行操作,而不是像获取用户ID,秘密ID并从我的服务器联系其服务器以进行令牌验证和获取数据那样进行OAuth过程用我已经拥有的注册系统进行注册?

这些是我在执行此操作时看到的优点:

  1. 不需要额外的代码或数据库字段,例如令牌ID等。
  2. 用户可以在需要时向自己的帐户添加密码,然后登录该网站或通过使用相同的电子邮件ID通过Facebook或Google+登录来访问其帐户。
  3. 只需使用一次社交登录提供商的API,即用户首次登录(从技术上将用户注册到该站点),就足够了。

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

现在我的问题是:

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

您提出的系统存在某些缺陷,特别是与安全性相关的缺陷。我会给你关键的答案:

从Google+或其他提供商获取客户端后,您将从客户端发送数据,并隐式使用您的注册过程。

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

  1. 是否可以缩短如上所述的社交登录?
  2. 这样做会不会失去任何明显的优势(假设我已经有了一个注册系统)?
  3. 如果是,其他人是否会缩短他们网站上的流量?
  1. 否(请参见上面的原因)。
  2. 不会。您已经拥有适当的系统,您将不会失去优势。大多数站点都有一个用于正常注册的系统。他们通过利用oauth登录。有人会说密码很麻烦,但是所有著名的网站都提供登录名和密码,包括SO。

现在的问题来了,考虑到您已经拥有一个系统,如何简化oauth系统。

我建议您这样做(以Google为提供者)(以dot开头):

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

您的用户也可以通过电子邮件登录。如果尚未注册,则需要注册。否则,使用“忘记”功能,他可以设置密码,也可以从帐户设置中设置密码。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Google+流程登录

来自分类Dev

使用SocialAuth在JSF中登录社交网络

来自分类Dev

社交登录背后的逻辑

来自分类Dev

处理多个社交登录/注册系统

来自分类Dev

网站移动应用中的社交登录

来自分类Dev

如何在Android上处理多个社交媒体登录和会话流程?

来自分类Dev

实施社交登录和应用内登录

来自分类Dev

如何防止社交媒体登录多个帐户?

来自分类Dev

Xamarin表格+棱镜登录流程

来自分类Dev

使用Facebook的Loopbackjs社交登录

来自分类Dev

Google社交登录按钮不显示

来自分类Dev

Facebook登录流程

来自分类Dev

社交媒体登录intelXDK的实现

来自分类Dev

Android-使用多个社交网络登录

来自分类Dev

社交媒体登录android

来自分类Dev

Oscommerce整合社交登录

来自分类Dev

处理多个社交登录/注册系统

来自分类Dev

实施社交登录和应用内登录

来自分类Dev

如何从Xamarin调用servicestack社交登录API

来自分类Dev

Django中的社交登录

来自分类Dev

Opencart社交登录模块扩展的安装

来自分类Dev

社交登录重复帐户冲突

来自分类Dev

用Facebook登录流程

来自分类Dev

使用社交名流登录 Laravel facebook

来自分类Dev

微信社交登录

来自分类Dev

Django 中的 Twitter 社交登录

来自分类Dev

使用社交媒体响应异步登录

来自分类Dev

尝试登录时发生社交登录错误

来自分类Dev

用于集中社交登录的 2 跳“授权码”流程 oauth2 身份验证