2012-07-25 58 views
0

用户详细信息保存在名为user的数据库表中,其中包含用户名和密码等字段。现在,我需要给用户额外的选项,使用Facebook和Twitter登录。 我知道如何处理这些身份验证,但我无法想象的是 -向网站用户添加facebook/twitter登录选项

如何识别哪个FB用户帐户与哪个本地用户帐户相关?我该怎么做呢?

我不是在寻找代码,而是在寻找过程。我脑海中的过程如下 - 用户使用我的网站的用户名和密码登录。那么他们可以添加FB或Twitter作为外部认证,当他们这样做时,我要求他们登录到FB。在成功的FB登录时,我会在users表中保存一些独特的fb id(我不知道哪些尚未检查)。下次他们可以使用FB登录,因为我能够识别它们属于哪个本地记录。这是你如何做到这一点?

你会建议什么?预先感谢您的投入。

PS - 我将添加多个网络(如linkedin和其他人),但目前只有fb和twitter。你可以这样做

回答

1

一种方法是: @Registration

1. Allow the user to register with Facebook, Twitter 
2. Once the process has completed, redirect the user to create a username on your site 
3. Using the email obtained from Facebook, Twitter, and username from local form, insert all this information into a db table. 
4. This will allow referencing between FB, TW, and local usernames 
+0

嗯 - 但现有的用户呢?还有管理员也会创建用户帐户(然后系统通过电子邮件向他们发送登录详细信息)。 – user1421214 2012-07-25 12:30:33

+1

嗯 - 对于现有用户,您可以编写一个小脚本来引用您的db中的电子邮件地址与facebook中的电子邮件地址。如果它们是相同的,则用thefacebook creds更新表格。对于手动提交,我认为它可以以同样的方式工作,但我不知道你有什么设置。 – mlishn 2012-07-25 12:34:27

+0

@mlishn:你刚发布这个时,我打字相同的事情.. 任何如何+1给你... – mrsrinivas 2012-07-25 12:35:30

0

创建一个相互关联的表,将持有的用户ID,Facebook或Twitter用户ID,认证类型(Facebook或Twitter)。

+0

如何/何时我填充此表? (使用哪个用户名到哪个社交网络ID?) – user1421214 2012-07-25 12:32:09

+0

看,当用户logedin在您的站点使用Facebook或Twitter时,您将获得用户的Facebook uderid和twitter用户ID作为脸书和Twitter都返回用户ID。将所有必要的数据保存到另一个表中的用户表和社会登录数据中。 (首先你必须在你的网站上注册用户,然后你会得到最后插入的用户ID,针对这个ID你会保持数据在新表中) – Shyantanu 2012-07-25 12:37:23

+0

而现有的用户,你必须与id匹配,而不是电子邮件。 Coz twitter不会返回用户电子邮件。 – Shyantanu 2012-07-25 12:44:13