gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:22:52 26 4
gpt4 key购买 nike

我正在开发一个 MVC4/Razor 网站,客户要求能够让用户使用 Facebook/Google 帐户登录。幸运的是,使用 Forms 身份验证非常简单。

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

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

有几个问题:

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

我知道有一个类似的问题 here ,但我的问题专门针对 MVC4 中 Forms auth 的上下文。

最佳答案

你是对的:这样很容易冒充
事实上,更严重的是,并不是所有的 OAuth 提供商都会为您提供用户电子邮件地址 (LinedId)。
每个 OAuth 提供商都使用一个电子邮件地址进行初始验证,但是,用户可以拥有多个,实际上有些人鼓励您将它们作为备份。
所以电子邮件不是识别用户的好“ key ”。
可能您的解决方案是拥有一个包含您自己的内部 ID 的表,并将其与 OAuth 提供商的唯一用户标识相关联:一些使用电子邮件地址,另一些使用屏幕名称或类似名称。
这将允许用户在您的站点上拥有多个 OAuth 验证器。我通过以下平台实现了这一点:Linkedin、Twitter、Amazon、Google+、Microsoft 和 Facebook。
此外,我们的用户可以使用他们的域帐户登录,但这是另一回事...

关于asp.net - 根据电子邮件地址将 OAuth 帐户与现有帐户合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23879274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com