`
macken
  • 浏览: 341756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

新浪微博passport登录原理

    博客分类:
  • JS
 
阅读更多

对新浪的passport的流程进行了简单的分析,未深入研究

 

新浪的passport实现主要依托js进行实现,用户登录流程

1.首先请求地址http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.22) 不同js版本地址可能不同;

发送的参数主要包括加密的原始参数、加密后的用户名、密码以及一些入口信息等,用户名、密码的加密方法可以通过查看js看到;client指定的是客户端使用的哪个js进行参数处理;

2.server端验证参数是否正确,如果正确,返回跨域的处理的url。由于新浪的所有产品都统一使用新浪的passport,比如weibo、uc等产品就存在了cookie的跨域问题,需要对这些跨域cookie进行处理,如果是sina.com域下的产品,则不需要执行返回的url,如果是其他域的产品,需要继续执行返回响应域的url;

 

以新浪微博为例;

1.请求http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.22)以后;

2.如果登录成功以后,获取跨域的url http://weibo.com/ajaxlogin.php

3.执行跨域url http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack

完成了新浪微博的登录

 

完全可以使用HttpClient模拟登陆新浪微博

分享到:
评论
2 楼 macken 2013-06-14  
chenweinjupt 写道
你好,请问一下跨域后cookies您是如何处理的?

你可以使用HttpClient将cookie信息序列化到本地,然后再次使用时将cookie反序列化以后附加到HttpClient上
1 楼 chenweinjupt 2013-06-14  
你好,请问一下跨域后cookies您是如何处理的?

相关推荐

Global site tag (gtag.js) - Google Analytics