0

我正在创建一个有点类似于 stackoverflow 的用户注册页面。为此,如果用户在 facebook、twitter、google 或 linkedin 等 3rd 方网络上已经存在任何帐户,那么我必须给他一个机会,而不是自定义注册。

我需要将他们的 3rd 方网络 ID、电子邮件、名称保存 在我的数据库中的用户表中。因此,如果该特定用户来提供类似的用户名并且他的身份验证成功,那么我可以让他访问使用我网站上的用户页面。(我对保存第 3 方网络社交网络的密码不感兴趣)

我有点困惑如何构建这样的系统,有人告诉我 openid 和 openauth 但我不确定哪一个可以给我正确的结果?

4

1 回答 1

1

对于这个问题,您是否选择使用openidopenauth两者都将为您提供用户身份并不重要。我倾向于这样做的方式是这样的:

table users_openids(identity, user_id, created, last_used, ...)

然后它允许您的用户附加多个身份,以防您要从其中的许多人导入数据。

要通过身份登录,您只需在主表中查找 user_id。

因此,对于现有用户,只需为他们添加一行,对于新用户,同时插入一个新用户并使用 NULL 密码,并确保在您的应用程序逻辑中正确处理它。由于您应该使用哈希,因此如果有人输入 NULL,您将永远不会匹配。

于 2012-07-14T21:36:02.593 回答