0

我正在我的 ASP.NET 4.5 C# Web 应用程序中实现 Facebook 登录小部件。当我点击登录按钮时,我最终得到了 accessToken。我的问题是关于让用户在我的应用程序中持久化。

存在与特定 facebook 用户相关联的数据。当用户注销并重新登录时(假设cookie可能被删除),我希望能够再次识别他以显示相关信息。

我知道我需要使用数据库,但是这样做的最佳做法是什么。我应该使用用户 ID 或电子邮件地址作为唯一的用户标识字符串吗?

我使用 MySQL 作为后端。

4

1 回答 1

1

我一直在开发一个类似的应用程序,它使用 Facebook (OAuth)、Google (OpenId) 或手动注册登录方法。

我首选的解决方案是询问用户他们的电子邮件地址,您将需要从 Facebook 请求电子邮件字段的扩展权限,因为默认情况下不提供。

http://developers.facebook.com/docs/authentication/permissions

我的表结构看起来像这样。

User
  Id (int)    
  Email (nvarchar(256))
  FacebookToken (nvarchar(256))
  GoogleToken (nvarchar(256))

这种方法的优点是,如果您稍后决定添加另一个身份验证/识别服务或推出自己的服务,您可以将您的用户链接到正确的帐户。他们登录 FB、Google 或 Twitter 无关紧要——您总是知道要将他们附加到哪个帐户。

无论如何,为每个用户提供一个电子邮件地址也很有用。

问候

史蒂夫

于 2013-08-15T15:25:37.307 回答