Openid 将网站的开放ID与现有用户集成

Openid 将网站的开放ID与现有用户集成,openid,connect,accounts,Openid,Connect,Accounts,我正在将OpenID与一个已经有用户帐户的网站集成。我已经检查了相关的代码文档,到目前为止一切都很简单,现在在我开始实施之前,我想问一下,将openid与现有成员集成的最佳方式是什么 我的计划 我心里有一个特定的计划,想知道这是一个好的方法,还是以后会带来问题 比如说,我有一个主表,其中存储了用户和密码(这是针对现有用户的,这些用户直接订阅了我们的站点,没有开放id) 现在,我将创建一个OpenId表,它将用户映射到一个或多个OpenId提供者 注意:如果第一次通过开放id注册,它将始终在主用户

我正在将OpenID与一个已经有用户帐户的网站集成。我已经检查了相关的代码文档,到目前为止一切都很简单,现在在我开始实施之前,我想问一下,将openid与现有成员集成的最佳方式是什么

我的计划
我心里有一个特定的计划,想知道这是一个好的方法,还是以后会带来问题

比如说,我有一个主表,其中存储了用户和密码(这是针对现有用户的,这些用户直接订阅了我们的站点,没有开放id) 现在,我将创建一个OpenId表,它将用户映射到一个或多个OpenId提供者

注意:如果第一次通过开放id注册,它将始终在主用户表中创建一个帐户,然后在开放id映射表中相应地映射它

我会做的是,当用户点击雅虎登录,在雅虎提供商处进行认证,然后返回我们的网站时,我们的应用程序会弹出一个问题:-

1) 你在这个网站上有帐户吗?如果是这样,那么将为用户提供登录站点用户名和密码的选项,如果操作正确,则将该现有用户映射到yahoo,将记录插入到将现有用户映射到yahoo的open id表中,但在这种情况下,我将使用什么元素唯一标识yahoo帐户?电子邮件?雅虎用户名

一个可能的困境出现在图片中,如果用户最初使用开放id(比如谷歌)注册,而不是通过正常的登录/注册,我需要让用户通过谷歌进行身份验证,然后返回,如果成功,则将yahoo帐户映射到该帐户。在OpenID映射表中插入一条记录,映射现有用户与yahoo的关系,默认情况下,它也会映射GoogleOne

2) 新用户?在这种情况下,它将获取用户名/电子邮件,并在主表中使用随机生成的密码创建帐户,并将该用户与开放id表中的开放id映射

这种方法听起来合理吗?如果不是,为什么?还有什么其他可能的方法可以集成OpenID