繁体   English   中英

Facebook登录作为现有登录的补充?

[英]Facebook Login as supplement to existing login?

我正在开发一个具有一些社交方面的PHP / MySQL电子商务网站,我希望将其与Facebook集成。 我已经有一个本机用户注册/会话处理系统。 我已设法包含iframe“社交插件”,例如“赞”按钮。 但我真的想为用户提供在本地注册过程中通过Facebook注册网站的选项。

我理解通过OAuth协议获取访问令牌并最终获取用户ID的想法。 我的担忧有两方面:

  1. 这种方法安全吗? 这是一个电子商务网站,但我不存储任何信用卡或任何其他敏感数据。 我想不出如何利用它,但我只是一个头!

  2. 我了解如何检索初始令牌并在注册过程中获取用户ID。 但是如何识别返回(会话)用户? 我是否必须为此实现Javascript SDK(我想避免的事情)? 或者,我是否像处理本地会话一样处理会话,但在适当的时候使用Facebook用户ID替换会话cookie中的普通用户ID?

如果答案很明显,我道歉。 我搜索了谷歌和Facebook的文档,但我找到的一半链接是弃用FBConnect wiki文章,新文档很有帮助,但在示例上却很少。 我不知道什么是仍然支持,什么是新的,以及如何做到这一点!

  1. 是的Oauth非常安全。 许多应用程序依赖它,并且没有已知的方法来利用它。

  2. 你可以做到这一点的一种方法是存储用户的Facebook ID,这样当他们回来时你可以看到他们的id已经存在于你的记录中并且知道它是一个返回的用户。 他们的会话可能不同(例如,自上次访问以来已过期),因此您不希望存储其访问令牌; 但他们的Facebook用户ID总是一样的。

我如何基本上在我的网站上集成Facebook注册/登录是我在我的用户表中添加了一个facebook_id列和一个“注册Facebook”按钮。 如果用户点击,使用Facebook进行身份验证并且我返回会话并且用户是新的,我会重定向到注册页面,使用来自Facebook的数据(如他们的名字)预填充尽可能多的字段,并将Facebook ID添加为隐藏的输入字段。 因此,当他们注册时,他们的facebook_id将填入数据库。 这是与标准页面相同的注册页面,因此与非Facebook用户的唯一区别是facebook_id字段将为空。 如果需要,您也不需要Facebook用户的密码。

对于用户登录,用户只需单击“使用Facebook登录”按钮并通过Facebook进行身份验证。 一旦Facebook给我会话,我就会将用户登录为任何用户拥有facebook_id作为Facebook会话中的用户。 由于您担心安全性,我会注意到此会话无法伪造,因为它是使用只有您和Facebook知道的应用程序密钥签名的。 如果你使用Facebook的SDK(你应该),你不必担心签名和签名验证。 您可以从会话中读取连贯的信息,这意味着Facebook的SDK已对其进行了验证。

这个Facebook页面是整合注册Facebook的好指南。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM