推广 热搜: 公司  快速  上海  中国  未来    企业  政策  教师  系统 

腾讯微博应用授权隐式登陆实现

   日期:2024-10-31     作者:caijiyuan    caijiyuan   评论:0    移动:http://keant.xrbh.cn/news/9749.html
核心提示:应用授权的请求地址格式,使用Fiddler2捕捉一次完整的授权操作就可以大致了解腾讯微博的登陆原理(重点在h_login_11.js)对于htt

应用授权的请求地址格式,使用Fiddler2捕捉一次完整的授权操作就可以大致了解腾讯微博的登陆原理(重点在h_login_11.js)

腾讯微博应用授权隐式登陆实现

对于https的请求服务器证书回调验证我们都返回true

1、获取临时验证码

请求链接格式如下:

uid:用户账号

r:0~1之间的随机数(允许忽略)

第二个参数就是验证码,第三个参数是用户账号调用$str.uin2hex(h_login_11.js)的结果,它会被用来后续参与用户密码的加密参数。

2、用户密码加密

查看h_login_11.js源代码,用户密码会被$.Encryption.getEncryption函数加密

三个参数分别是用户密码、加密账号、验证码,加密算法步骤如下:

1)md5([用户密码])

2)hexchar2bin([上一步返回字符串])

3)md5([上一步返回字符串] + [加密账号])

4)md5([上一步返回字符串] + [验证码大写])

之前考虑到该算法的复杂程度,使用.NET javascript 引擎Jint执行$.Encryption.getEncryption,但返回的结果始终不对。在仔细阅读了$.Encryption内部源代码后参考编写了一个C#.NET版本(需要注意字符编码为ISO-8859-1)。

调用示例:

3、HTTP GET完成登陆

腾讯并没有像新浪、网易使用HTTP POST的方式,而是HTTP GET。请求登陆链接格式:

u:用户名

p:用户密码(需要使用固定加密算法)

verifyCode:验证码(第一步请求获取)

u1:应用授权链接

4、获取AuthorizationCode

再次请求授权链接会发现响应还是返回登陆内容,其实我们已经完成了登陆,只需要将返回内容中隐藏域u1的值获取并再次请求就可以获得授权代码。其中最重要的一个查询参数就是sessionKey。

5、获取access_token

请求地址格式:

本文地址:http://lianchengexpo.xrbh.cn/news/9749.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多
 
标签: 隐式 腾讯 登陆
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号