实现社交网站登录的Web服务


Implement webservice for login with social sites

我正在为ios和android应用程序开发Web服务,需要开发一种使用社交媒体登录的服务。

该应用程序需要支持使用twitter、facebook、linkedin和googleplus登录。

作为参数,我接受来自社交网站的用户id和该id来源的网站,以及基本的用户信息,如名字、姓氏和电子邮件。

以下是本的相关表格结构

  1. 用户表

    userid|email|deviceid|firstname|lastname|密码

userid是主要的,电子邮件是唯一的

  1. 用户社交媒体表

    userid|site|token

当我从前端获得这些信息时,我首先检查社交用户id是否已经存在。如果社交id不匹配,我会检查数据库中是否存在电子邮件。如果数据库中没有电子邮件,那么我会注册新用户。

现在的主要问题是,如果用户是通过电话注册的,android和ios的twitter sdk不会返回电子邮件,甚至facebook也不会返回电子邮件。因此,我在唯一识别用户方面遇到了问题。我找了很多,但找不到任何解决方案。

如果我的方法有任何错误,请纠正我,并向我建议如何处理电子邮件问题。

我会为这两种类型的用户使用一个表,如下所示:

userid | type | email | socialid | deviceid | firstname | lastname | password | token

"类型"列将是可能帐户类型的枚举fbtwitter谷歌电子邮件

对于来自社交网络的用户,"socialid"将具有社交网络的id(该id包含在oauth响应中),对于普通用户(通过电子邮件注册),将为null

"邮件"将包括普通用户的电子邮件,社交用户为

然后,只需要SELECT查询就可以了解使用的用户类型

看看http://hybridauth.sourceforge.net/并实现以套件化您的体系结构或解决方案。

通常情况下,Facebook API应该随用户ID一起提供。Twitter SDK有点棘手。尝试将用户的Twitter用户名保存在数据库中。