加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 根据电子邮件地址将OAuth帐户与现有帐户合并

发布时间:2020-12-16 03:45:18 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个MVC4 / Razor网站,客户要求该网站能够使用Facebook / Google帐户登录.幸运的是,使用Forms身份验证相当简单. 但是,我遇到的问题是:如果提供商返回的用户电子邮件地址与现有用户名相匹配怎么办? 例如,tim@rocketeerconsulting.com以前作为本机
我正在开发一个MVC4 / Razor网站,客户要求该网站能够使用Facebook / Google帐户登录.幸运的是,使用Forms身份验证相当简单.

但是,我遇到的问题是:如果提供商返回的用户电子邮件地址与现有用户名相匹配怎么办?

例如,tim@rocketeerconsulting.com以前作为本机帐户存在.无论出于何种原因,用户都想使用Facebook登录. Facebook返回蒂姆@ rocketeerconsulting是用户的电子邮件地址.如果用户尝试使用该信息创建帐户,MVC4将声明该帐户已存在.

有一些问题:

>如果OAuth提供商提供的电子邮件地址与现有帐户匹配,是否允许用户合并帐户?
>这会带来潜在的安全风险.我可以依靠OAuth提供商来确认该地址是否有效?如果没有,恶意用户可以创建Facebook帐户,然后获得对其他用户帐户的访问权限.
>如果有的话,应该如何实施这样的事情呢?

我认识到有一个类似的问题here,但我的问题特别适用于MVC4中的Forms auth的上下文.

解决方法

你是对的:这种方式很容易冒充 实际上,要为问题添加更多内容,并非所有OAuth提供商都会为您提供用户电子邮件地址(LinedId). 每个OAuth提供商都使用电子邮件地址进行初始验证,但是,用户可以拥有多个,实际上还有一些让您将其作为备份. 因此,电子邮件不是识别用户的好“关键”. 您的解决方案可能是拥有一个包含您自己的内部ID的表,并将其与OAuth提供商唯一的用户标识相关联:一些使用电子邮件地址,其他人使用屏幕名称或类似名称. 这将允许用户在您的网站上拥有多个OAuth验证程序. 我实现了这个:Linkedin,Twitter,亚马逊,谷歌,微软和Facebook.另外,我们的用户可以使用他们的域帐户登录,但这是另一个故事……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读