我已阅读其他问题,他们主要讨论这样做的安全性。这不完全是我的担心,主要是因为网站的问题是基于浏览器的游戏。然而,更大的问题是用户 - 并不是每个用户都足够了解OpenID。当然,RPX使得这非常简单,这就是我将要使用的,但是如果用户在Google或Facebook等账户中没有账户,或者不相信系统使用现有账户登录会怎样?他们必须得到另一个提供的帐户 - 我相信大多数人都知道如何这样做,更不用说打扰了。使用OpenID作为唯一的身份验证方法
还有如何在应用程序中管理它的问题。用户可能希望将多个身份用于单个帐户,因此它不像用户名+密码那样简单。如何将用户的OpenID标识存储在数据库中?使用OpenID也给我带来了好处:RPX可以提供广泛的配置文件信息,因此我可以预先填写配置文件表单并要求用户根据需要进行编辑。
目前,我有这样的:
Users:
------
ID Email Etc.
-- --------------- ----
0 [email protected] ...
1 [email protected] ...
UserOpenIDs:
------------
ID UserID OpenID
-- ------ ------
0 0 0
1 0 2
2 1 1
OpenIDs:
--------
ID Provider Identifier
-- -------- ----------------
0 Yahoo https:\\me.yahoo.com\bob#d36bd
1 Yahoo https:\\me.yahoo.com\alice#c19fd
2 Yahoo https:\\me.yahoo.com\bigbobby#x75af
有了这些外键:
UserOpenIDs.UserID -> Users.ID
UserOpenIDs.OpenID -> OpenIDs.ID
是不是正确的方式OpenID的标识符存储在数据库中?我如何匹配标识符RPX给我一个在数据库中登录用户(如果标识符是已知的)。
因此,这里有具体的问题:
- 我将如何使它访问没有一个OpenID用户或不想使用它? (安全问题比如说,以他们的Google帐户登录为例)
- 如何将标识符存储在数据库中? (我不确定上述表格是否正确)
- 我需要采取哪些措施来防止某人以其他用户的身份登录并愉快地使用其帐户进行操作? (据我所知,RPX通过HTTP发送标识符,所以任何人需要做的只是以某种方式抓住它,然后将其输入到“OpenID”字段中)
- 使用OpenID时还需要注意什么?
嘿那里,新的OpenId我自己,但考虑它在我自己的网站。到你的第三个问题“措施......以防止某人以另一个用户身份登录......”,正如我所了解的OpenId,你从不**接受来自不可信来源的OpenId网址。在实施过程中,您的网站承载提供商的登录信息,提供商的网站直接与您联系**,因此您始终接受来自受信任网站的OpenId网址。 – 2010-04-08 17:42:23