关于QQ授权页面的post登录cookie算法

来源:互联网 发布:k60单片机介绍 编辑:程序博客网 时间:2024/05/22 21:32

比如请求帐号接入知美网http://openapi.qzone.qq.com/oauth/show?which=AuthorizePage&display=pc&which=Login&display=pc&response_type=code&client_id=100232105&redirect_uri=http%3A%2F%2Fwww.zhimei.com%2Flogin%2Fqzone%2Freturn%3Fflag%3D0%26skip%3D0&scope=get_user_info,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_idol&state=zm&src=1

模拟post登录后,发现帐号登录成功,但是根据返回的cookie再次请求页面时还是提示没登录..

httpwatch抓了下包,发现登录qq帐号时需要提交4个cookie值,分别是pgv_pvi,pgv_si,pgv_pvid, pgv_info=ssid=xxx

然后就是要知道这cookie是怎么来的,搜js,前2个cookie在http://tajs.qq.com/stats?sId=16291955里面,进去成功找到计算方法..

    function y(d) {
        return (d || "") + Math.round(2147483647 * (Math.random() || 0.5)) * +new Date % 1E10
    }

 document.write("pgv_pvi="+y()+"; ");
 document.write("pgv_si="+y("s")+"; ");

这样就是前2个参数的值了.后2个参数在http://qzonestyle.gtimg.cn/c/=/ac/qzfl/release/qzfl_for_qzone.js,/ac/qzfl/stat.js里面,计算方法如下:

var d=(Math.round(Math.random() * 2147483647) * (new Date().getUTCMilliseconds())) % 10000000000;

document.write("pgv_pvid="+d+"; ");

document.write("pgv_info=ssid=s"+d+"; ");

 

哈哈就这么简单..post登录就不费力了

 

原创粉丝点击