我正在我的 ASP.NET 4.5 C# Web 应用程序中实现 Facebook 登录小部件。当我点击登录按钮时,我最终得到了 accessToken。我的问题是关于让用户在我的应用程序中持久化。
存在与特定 facebook 用户相关联的数据。当用户注销并重新登录时(假设cookie可能被删除),我希望能够再次识别他以显示相关信息。
我知道我需要使用数据库,但是这样做的最佳做法是什么。我应该使用用户 ID 或电子邮件地址作为唯一的用户标识字符串吗?
我使用 MySQL 作为后端。
我正在我的 ASP.NET 4.5 C# Web 应用程序中实现 Facebook 登录小部件。当我点击登录按钮时,我最终得到了 accessToken。我的问题是关于让用户在我的应用程序中持久化。
存在与特定 facebook 用户相关联的数据。当用户注销并重新登录时(假设cookie可能被删除),我希望能够再次识别他以显示相关信息。
我知道我需要使用数据库,但是这样做的最佳做法是什么。我应该使用用户 ID 或电子邮件地址作为唯一的用户标识字符串吗?
我使用 MySQL 作为后端。
我一直在开发一个类似的应用程序,它使用 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 无关紧要——您总是知道要将他们附加到哪个帐户。
无论如何,为每个用户提供一个电子邮件地址也很有用。
问候
史蒂夫