成都创新互联网站改版中如给广大用户带来不便请谅解! 创新互联专业成都网站建设 企业网站制作 精美网页设计 网站建设服务热线:028-869 2222 0
域名注册
虚拟主机
网站建设
企业邮局
- 域名相关知识及购买
- 域名解析
- 网址URL转发
- 转入转出及过户
- 域名交易
网络营销
网站备案
- 域名相关知识及购买
- 域名解析
- 网址URL转发
- 转入转出及过户
- 域名交易
服务器租用
网站登陆设计:搜狐单点登陆实现方案
- 作者:曾小姐 文章来源:成都域名注册 点击数:1139 更新时间:2009-11-26
- 今天,小编会跟大家提到搜狐单点登录的相关知识,大家好好的了解一下吧。网站建设比较复杂的网站环境下。有多个产品向外提供服务。每个产品下都有自己的用户登录界面。需要网页设计出一个统一的登录界面。当用户在这个界面登录后就可以自由的使用各个产品和服务。同时意味着用户用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的漫游到其他服务里面去。
下面,小编总结了一些实际应用:Sohu的Passport将focus.cn,17173.com,sogou.com,chinaren.com这四个域名下的产品全部整合在一起了。用户在这四个站点中任何一个地方都可以登录。当用户登录后可以自由的使用其他域名下的服务。现在很多网站上都有bbsblogalbum服务。这些服务一般也是自己维护自己的用户信息。当发展到一定时候,也需要一个Passport机制整合所有服务,使用户可以单点登录。
在这方面Sohu的实现方案如下:
在http://passport.sohu.com/登录后fiddler可以拦截到如下的返回信息:
由于passport.sohu.com的登录界面使用了iframe隐藏提交。所以页面没有看到刷新。隐藏的iframe把用户名和加密的password和其他信息发送给了passport.sohu.com。passport.sohu.com在Response中设置了成功登录的cookie。这个cookie可以证实这个用户成功登录了passport.sohu.com。
当用户在Passport成功登录后。客户端的javascript根据成功登录的标志,操作iframe请求http://passport.sohu.com/sso/crossdomain_all.jsp?action=login因为在同一个域名下,没有跨域,在这次请求中,上次成功登陆的cookie会被一并带着回去。服务器端检查到成功登录的cookie后会Render回一段同时登录多个站点的html。
这段html要向4个地址发送请求。截至到现在都是在相同的Domain(passport.sohu.com)请求和返回,为真正的跨站点登录做准备,真正的跨站点登录还没有开始。下面passport.sohu.com通过sso/crossdomain.jsp在国内服务器端进行Redirect设置httphead为302进行跳转。跳转后在这个跳转后的域名下设置登录成功的cookie。这就是sohu实现跨站点登录的核心过程。
下面是passport.sohu.com的登录17173.com的过程。
1.通过http://passport.sohu.com/sso/crossdomain_all.jsp?action=loginRender回来的script<scripttype="text/javascript"src="http://passport.sohu.com/sso/crossdomain.jsp?action=login&domain=
17173.com"></script>
请求同域下的http://passport.sohu.com/sso/crossdomain.jsp?action=login&domain=17173.com这时passport.sohu.com下成功登录的cookie会被带回去。
2.服务器看到成功登录的Cookie后。在服务器端计算出一个加密后的17173.com的登录Url,并Redirect到这个Url。
3.17173.com从url的QueryString中取得信息。并在Response中设置Cookie。这个Cookie终于写到了17173.com下。而不是passport.sohu.com下。从而使得用户在17173.com下登录。其实用户在17173.com下手动登录也是写上同样的Cookie。以后用户再访问17173.com的页面时这个Cookie会被带回去。这就表示用户在17173.com下成功登录过了。
经过上面的步骤。用户在passport.sohu.com下登录的同时也在其他站点登录了。
但是小编要强调的是,在上面的过程中,最核心的技巧就是在指定的域下写入想要的Cookie:
1.Sohu使用了在同一个域名登录后通过再次请求这个域名下某个链接后,得到要登录站点的请求Url,通过javascript使隐藏的iframe请求要登录站点的Url,服务器端接到请求Redirect到要登录站点,然后通过Response写入Cookie,完成跨域名写Cookie的操作。这种写Cookie的方式,需要在跳转时对请求的QueryString进行加密。接受方需要对QueryString进行解密。
2.这种做法在服务器端不需要特别的处理。只要写好相应Post操作WriteCookie操作Redirect操作就可以了。在FireFox下就可以正常工作了。但是在IE下写Cookie的操作还不行,总是写不进去Cookie。需要在Response中加入一段特别的Header.P3P:CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"
这个HttpHeader是P3P安全的要求。P3P的详解http://www.oreilly.com.cn/book.php?bn=7-302-07170-5
微软对这个的解释:http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q323752
以上就是成都创新互联小编对于搜狐单点登陆的一些知识总结,你了解了么?
-
- 上一篇文章:重视网页的UE设计 谈注册页之用户体验
下一篇文章:网站制作的URL制定规则有哪些
服务电话:028-86922220 13518219792 公司地址:成都市太升南路288号锦天国际A幢1002号
支持信箱:service@cdxwcx.com 版权所有:创新互联-成都网站建设网络公司 蜀ICP备13010860号
创新互联成都网络公司:成都网站设计,成都网站制作,成都网站建设,成都网页制作,成都网页设计,成都企业网站建设,网页木马