Tim*_*ell 6 asp.net facebook oauth asp.net-mvc-4
我正在开发一个MVC4/Razor网站,客户要求该网站能够使用Facebook/Google帐户登录.幸运的是,使用Forms身份验证相当简单.
但是,我遇到的问题是:如果提供商返回的用户电子邮件地址与现有用户名相匹配怎么办?
例如,tim@rocketeerconsulting.com以前作为本机帐户存在.无论出于何种原因,用户都想使用Facebook登录.Facebook返回蒂姆@ rocketeerconsulting是用户的电子邮件地址.如果用户尝试使用该信息创建帐户,MVC4将声明该帐户已存在.
有一些问题:
我承认有一个类似的问题在这里,但我的问题具体来说,涉及在MVC4窗体身份验证的情况下.
你是对的:这种方式很容易冒充。
事实上,更糟糕的是,并不是所有的 OAuth 提供商都会向你提供用户电子邮件地址 (LinedId)。
每个 OAuth 提供商都使用电子邮件地址进行初始验证,但是,用户可以拥有多个电子邮件地址,实际上有些提供商鼓励您将它们作为备份。
因此,电子邮件并不是识别用户身份的良好“钥匙”。
您的解决方案可能是拥有一个包含您自己的内部 ID 的表,并将其与 OAuth 提供商唯一的用户标识相关联:有些使用电子邮件地址,其他使用屏幕名称或类似名称。
这将允许用户在您的站点上拥有多个 OAuth 验证器。我通过以下方式实现了这一点:Linkedin、Twitter、Amazon、Google+、Microsoft 和 Facebook。
另外,我们的用户可以使用他们的域帐户登录,但这是另一个故事......
归档时间: |
|
查看次数: |
366 次 |
最近记录: |