Web 如何继续使用新的OpenID用户
我正试图找到面对这种情况的方法 在我的数据库中有这些与“本机”用户和“外部”用户相关的表来记录“本机”用户和OpenId用户:Web 如何继续使用新的OpenID用户,web,openid,Web,Openid,我正试图找到面对这种情况的方法 在我的数据库中有这些与“本机”用户和“外部”用户相关的表来记录“本机”用户和OpenId用户: --native user-- id (primary key) email (unique) screen_name (unique) --external user-- openid_id native_user_id 当新用户使用OpenId帐户登录时,我会创建一个新的“本地”用户,并为其分配OpenId帐户标识符。在我自动创建这个新的“本地”用户之前,我
--native user--
id (primary key)
email (unique)
screen_name (unique)
--external user--
openid_id
native_user_id
当新用户使用OpenId帐户登录时,我会创建一个新的“本地”用户,并为其分配OpenId帐户标识符。在我自动创建这个新的“本地”用户之前,我尝试从OpenId获取一些信息,如姓名和电子邮件。如果两者都存在,用户将“神奇地”注册,但如果缺少这些字段,用户将收到一张表格,要求他填写信息
好了,现在我的问题来了
如果新的OpenId用户登录该站点,并且OpenId给我一封已经分配给现有本地用户的电子邮件,我应该如何继续?(请记住,电子邮件是我表格中唯一的字段)
PD:我读过这个问题:但这不是我想要的100%。永远不要选择选项2:就像你说的,你不想让错误的人访问。除此之外,您可以决定是拒绝访问还是允许访问,但要求用户提供不同的电子邮件地址。我不认为拒绝访问有什么意义,因为用户无论如何都可以用另一个电子邮件地址创建一个新的OpenID。为什么不取消电子邮件必须是唯一的限制?您有一个唯一的id、屏幕名称和(对于某些用户)openid URL。这还不够吗?当然,但我是否应该警告用户,如果他想将这个新的OpenId分配给他已经存在的用户,他必须从他的个人资料中进行分配?如果你愿意,你可以这样做。一个简单的通知就可以了,然后由用户自己决定,如果他愿意的话。我想让用户用电子邮件和/或用户名登录,就像Twitter一样。