因此,我正在开发一个网站,每个用户可以提供一个或多个社交帐户来定义其在网站上的个人资料。
不使用社交帐户登录,而是通过电子邮件和密码登录,并且由Firebase处理。
所以我需要每个用户说“我有Facebook / Instagram / Twitter / etc。”,但是我想验证他们说自己拥有的帐户的所有权。
有没有一种方法可以执行此验证,以便用户无法插入属于其他人的帐户?
谢谢大家
答案 0 :(得分:1)
OpenID Connect将是此活动的标准协议。
但是,如果您使用多个提供商,则可能很难进行帐户关联。
Firebase Authentication使用OpenID Connect和OAuth 2.0,具体取决于您要执行的操作。
-吉姆
答案 1 :(得分:0)
哪种社交帐户?
在Facebook上,如果创建一个APP然后获得令牌,则可以搜索帐户并检索一些信息。
https://developers.facebook.com/docs/graph-api/using-graph-api/
答案 2 :(得分:0)
由于用户需要提供用户名/密码组合或令牌,因此可以使用Oauth来授权帐户。现在,如果您想证明用户实际上是所有者,而且没有人随机地窃取该帐户,那么您就有一些第三方提供商
如果用户向您提供了ID文件,而您或第三方公司则像idcheck.io一样对此进行了验证,则您可以实施验证过程
您还可以进行面对面的网络通话,以验证键盘背后的人实际上是所有者。
如果社交网络要求关联一个电话号码,则可以发送短信和代码来检查所有者是否是实际用户。为此,您可以使用Firebase的Nexmo这样的API
答案 3 :(得分:0)
正如其他人所述,OAuth和OpenID涵盖了社交提供商和Firebase之间的通信。用户没有已知的方法可以简单地拦截它并传递伪造的凭据。为了使用Firebase登录,他们将必须真正与该提供程序登录。
由于您正在使用社交提供商登录,因此用户只有在输入该社交提供商的帐户凭据后才能进行身份验证。确切的要求取决于提供商,但这至少将要求他们知道与该帐户关联的电子邮件地址和密码。因此,除非他们知道别人的电子邮件和密码,否则他们将无法登录。
如果“其他”用户启用了诸如多因素身份验证之类的功能,则恶意用户将需要提供更多的证明/凭证。