gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 12:31:08 26 4
gpt4 key购买 nike

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

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

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

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

如果答案显而易见,我深表歉意。我搜索了 Google 和 Facebook 文档,但我找到的一半链接是指向已弃用的 FBConnect wiki 文章,新文档很有帮助,但示例很少。我不知道什么仍然受支持,什么是新的,以及如何做到这一点!

最佳答案

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

  2. 您可以这样做的一种方法是存储用户的 Facebook id,这样当他们回来时,您可以看到他们的 id 已经存在于您的记录中,并且知道它是回访用户。他们的 session 可能不同(例如,自上次访问以来已过期),因此您不想存储他们的访问 token ;但他们的 Facebook 用户 ID 始终相同。

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

要让用户登录,用户只需单击“使用 Facebook 登录”按钮并使用 Facebook 进行身份验证。一旦 Facebook 给我 session ,我就会让用户登录,就像在 Facebook session 中拥有 facebook_id 的任何用户一样。由于您担心安全问题,我会注意到此 session 无法伪造,因为它是使用只有您和 Facebook 知道的应用程序 key 签名的。如果您使用 Facebook 的 SDK(您应该使用),则不必担心签名和签名验证。您可以从 session 中读取连贯信息这一事实意味着 Facebook 的 SDK 已经对其进行了验证。

This Facebook page是将注册与 Facebook 集成的重要指南。

关于php - Facebook 登录作为现有登录的补充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326315/

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