现在的位置: 首页 > 综合 > 正文

Step1帐户登录系统(6.使用OpenID登录网站)

2011年08月23日 ⁄ 综合 ⁄ 共 4232字 ⁄ 字号 评论关闭

        在我昨天的博客之中,我我介绍了我在帐户登录系统中对Yahoo的BBAuth的登录的支持过程,上面那篇文章的代码虽然很简单,文章也不长,实际上却是我研究的最深刻的一种类型,也是我对BBAuth的研究最终让我决定将这个系统全部开源。,今天,我要讲一下,OpenID的实现,下一篇应该是讲如何支持校内网的登录,再后面我可能简单的讲讲Oauth登录(如果我确实能够研究清楚地话),有网友曾经问到什么时候会提供整个代码的下载,我并不是不提供,而是我觉得代码还非常不完善,我在网站上提供代码的下载肯定要在我每一个支持的登录类型都介绍完毕之后,当时一定要在元旦之前,如果确实在此之前需要参考一下我的代码,可以直接与我联系,我随时可以提供所有的源码。

        讲到OpenID,想来很多读者都有一定的了解,没错,这是一个开放的协议,目的就是让用户能够在所有的网站使用一个账号和密码登录,这一点,和本系统的目的是不同的,因为本系统是比较自私的,希望是让所有的用户都可以使用自己已经有的帐户和密码登录,而OpenID则是希望所有的用户在所有的网站都可以使用一个账号和密码登录,当然要实现这个是比较难的,目前没有实现,但是不能不承认这是一个很有意义的事情,而本系统也不能不支持这种帐户的登录。

       关于OpenID的更多信息建议到OpenID的相关网站去看看,说老实话,这是我很看好的一个项目,如果感兴趣可以看看OpenID的相关网站

        OpenID的实现原理和本系统,和Google的AuthSub,Yahoo的BBAuth,Live的Account Server,包括我还没有介绍到的Oauth,实现的原理都是一样的,都是采用一种可信的方式在用户和Web应用程序之间建立交互,所不同的是,OpenID因为是要做到开放和能够到处兼容,所以有一些其它的考虑,至于具体有一些什么考虑,我能了解的是这样几点:

        1.采用URL作为账号,这样的话,就可以支持任意的网站,任何一个网站都可以提供OpenID了

        2.用户提供的URL之中,通过http或者html的Header来指定OpenID服务器的地址,甚至可以指定牛转向到另一个OpenID地址,这样可以确保用户可以使用自己喜欢的网址来作为登录帐号

         我知道的不比你多多少,我知道的也就是这些了,对于怎么才能支持OpenID登录,虽然我研究了很久,不过最后得出一个结论,还是使用公用的库吧,因为OpenID相对还是比较复杂的,要完整地支持还是挺难的;

        我采用的是ExtremeSwank的Dotnet OpenID2.0的库,这个库确实很好用,很快我就完成了对OpenID的支持,因为我对OpenID的了解实际上并不够,因此也不太合适对OpenID进行什么长篇大论,因此,我也就简单的提供OpenID的支持相关代码了:

        需要注意的是,以前我支持的多个类型都是只需要选择登录类型即可,而对于OpenID,因为必须先让用户输入登录帐号(URL),根据url地址才能够得到登录的转向地址,所以,必须先让用户输入帐号才能进行登录的转向。

        因为在登录界面根据URL的不同而不同,所以这次在本站也不再列出登录相关的截图,仅仅提供实现的代码:

 

OpenidServer.js代码

抱歉!评论已关闭.