1

我有一个网络应用程序,它有自己的用户注册,只有少数用户。唯一的必填字段是电子邮件、密码和用户名,它们必须是唯一的。从长远来看,我仍然希望拥有自己的注册系统。

我想整合 Facebook,但我想弄清楚是否应该整合 Facebook 注册或 Facebook 登录。我有这些问题:

  1. 我已经开始集成 Facebook 登录并且效果很好。有了这个,我不仅可以让 Facebook 用户登录,而且如果他是第一次通过 Facebook 登录并且尚未通过我们的网站注册,我可以获得注册用户所需的所有信息。我不会提示用户输入密码,以简化注册,但这意味着如果用户尝试直接登录我们的网站,我会告诉用户他必须通过 Facebook 登录登录。因此,我质疑 Facebook 注册的必要性,这似乎比 Facebook 登录更复杂。谁能告诉我为什么我应该整合 Facebook 注册?

  2. 我看到将 Facebook 登录或 Facebook 注册集成到我们现有的用户注册中的缺点是用户名。我目前将用户的 Facebook 用户名复制到我们的数据库中。但是,用户的 Facebook 用户名可能丢失或与我们现有用户之一的用户名重复,在这种情况下,我将不得不提示用户更改它。那么如果将来用户在 Facebook 上更改他的用户名会发生什么?当他下次通过 Facebook 登录时,我应该在我们的网站上更改用户的用户名吗?这里的最佳实践是什么?我是否正确地假设如果我不费心在我们的网站上更改用户的用户名,这不会成为问题?

  3. 然后有可能用户的 Facebook 用户名不符合我们的要求。目前,我们要求用户名只能是字母数字和下划线,使用此 reg 表达式:/^[\w]*$/ 但是,Facebook 允许句点,但不允许连续的特殊字符以及可能我没有检测到的其他条件。这意味着我应该使用与 Facebook 相同的有效性检查。有人知道 Facebook 的用户名 reg 表达式吗?

  4. 我可以使用 IMG 标签和 src= http://graph.facebook.com/facebook.id/picture显示 Facebook 用户的个人资料照片。有谁知道如何将照片保存到我们的服务器上?我们使用 Javascript 和 PHP。

谢谢你的帮助!

4

1 回答 1

1

嘿,我会尝试一一解决您的问题

  1. Facebook 登录只是一种让用户通过 Facebook 连接登录到您网站的方法,正如您所说,他们没有密码,因为 Facebook 处理身份验证。但是,您可以在使用 facebook 登录后将他们重定向到特定页面,并让他们输入密码以使用他们的帐户,而无需连接到 facebook。facebook 注册插件更像是一个让用户在您的注册系统上注册的工具(尽管它确实支持成为您唯一的注册系统)。如果用户已经登录 Facebook,它通过预先填充您可能经常要求的一些字段来提供便利,例如姓名等。您可以自定义以询问其他信息。这也意味着您可以为您的用户提供 1 个注册表单,无论他们是否使用 facebook。

  2. facebook 用户名不应丢失。他们的“姓名”字段应该是我相信他们必须提供的用户名字和姓氏。我不认为它可以是空的。我实际上建议做的是我在第 1 点中提到的。允许用户通过 facebook 连接,但随后提示他们输入用户名作为登录流程的一部分或之后。然后,您可以根据当前数据库检查它的唯一性。首先,您可以为他们分配一个名为 first_last_timestamp 或类似名称的用户名。这更有可能鼓励他们将用户名更改为他们想要的东西。如果您使用注册插件,您可以轻松地在其中输入您自己的“用户名”字段。然后它没有

  3. Facebook 的用户名应该只是用户的名字和姓氏(尽管显然人们确实输入了随机的东西)。“名称”字段是这些的组合,因此它们之间很可能有一个空格。您始终可以使用自己的正则表达式替换任何无效字符,用下划线替换空格等。

  4. 我不确定是否有任何平台策略会限制您将用户图片保存到您自己的服务器/数据库。我要问的是你为什么要这样做?以我的经验,这比他们的名字更有可能改变。因此,使用您网站的此类朋友群体可能更有可能识别他们的朋友在 facebook 上使用的个人资料图片。

最后我要说的是,以任何一种方式连接他们的 Facebook 帐户的最佳一点意味着您可以提供流畅的登录体验,这样用户就不必每次都登录。我个人的经验是facebook登录(在成功页面上使用您自己的集成代码)比注册插件更好。用户以这种方式连接到您的应用程序的步骤更少,而且他们不必填写表格。成功回调还意味着您仍然可以执行我上面提到的自定义用户名代码/流程,然后根据需要提示他们更改用户名。请记住,最好在注册时要求尽可能少的信息,因为用户更有可能以这种方式加入。

希望这可以帮助!

于 2013-10-24T19:09:09.863 回答