既然idselector已经升级到RPXNow并且你不能"只使用"选择器代码,那么什么是好的替代品呢?
我想在我正在使用的新网站上实现OpenId,但是用户在登录时会非常愚蠢,除非我为他们提供了一种简单的方法.
作为参考,我将使用.Net Open Id作为ASP.Net MVC Web应用程序的后台.
编辑
我已经阅读了其他问题,他们大多谈论这样做的安全性.这并不完全是我的担心,主要是因为该网站的问题是基于浏览器的游戏.但是,更大的问题是用户 - 并非每个用户都有足够的文字来理解OpenID.当然RPX使这很容易,这就是我将要使用的,但是如果用户没有Google或Facebook上的帐户或者不信任系统使用现有帐户登录该怎么办?他们必须在另一个提供帐户 - 我相信大多数人会知道如何去做,更不用说为此而烦恼了.
还有如何在应用程序中管理它的问题.用户可能希望在单个帐户中使用多个身份,因此不像处理用户名+密码那么简单.如何在数据库中存储用户的OpenID标识?使用OpenID也给了我一个好处:RPX可以提供广泛的配置文件信息,因此我可以预填充配置文件表单并要求用户根据需要进行编辑.
我目前有这个:
Users:
------
ID Email Etc.
-- --------------- ----
0 bob@yahoo.com ...
1 alice@yahoo.com ...
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
Run Code Online (Sandbox Code Playgroud)
使用这些外键:
UserOpenIDs.UserID -> Users.ID
UserOpenIDs.OpenID -> OpenIDs.ID
Run Code Online (Sandbox Code Playgroud)
这是在数据库中存储OpenID标识符的正确方法吗?我如何匹配RPX给我的标识符以及数据库中的标识符以登录用户(如果标识符已知).
所以这里有具体的问题:
我已经为多个应用程序实现了RPXNow,作为OpenID和OAuth的一个很好的抽象,以支持Google和Facebook登录.我唯一的抱怨是登录时间过长.点击谷歌的"登录"按钮后,整个过程需要8-10秒才能完成,这来自我的本地机器!我只查询https://rpxnow.com/api/v2/auth_info
一次来自my的响应字符串AccountController
,其中包括登录结果和用户配置文件.
所以我选择实施DotNetOpenAuth.使用Google作为我的提供商,完成登录仍需要7-9秒!它不能是我的存储库层,因为Forms登录是即时的.因此,我必须将等待时间归因于我的系统,RPXNow和身份验证提供程序之间的延迟.同样的延迟发生在我的基本和高级RPXNow账户上.
StackOverflow上的Google OpenID登录似乎是即时的.如何加快我的OpenID登录速度?如果我可以将登录时间缩短到1-3秒,我愿意放弃RPXNow.
编辑:好的,所以我去了我的RPXNow请求实际需要多长时间,并且它不到两秒钟(从冷启动开始的1984ms和2100ms),但整个过程需要7-8*秒.也许这是重定向或谷歌的登录框.我将不得不再运行一些诊断程序.
更多测试:我正在使用384kbps的ADSL连接进行测试,这也是SA的大多数人仍然拥有的.以下是使用Google登录的时间细分:
总登录时间,不包括在内.数据输入:
太长.
总登录时间,不包括在内.数据输入:
几乎可以接受.
Janrain Engage(以前的RPX)看起来非常不错,但是在freesoftware下有类似的东西吗?