爱奇艺刷新p值

September 22, 2019 · 分享 · 175次阅读

p值,也就是cookie中的P00001,每隔一定时间后会失效,通过这个接口可以得到新的p值。
curl 命令
其中cookie_string的形式是key1:value1;key2:value2

curl -e https://www.iqiyi.com -b "cookie_string" https://passport.iqiyi.com/apis/reglogin/renew_authcookie.action?ptid=01010021010000000000

正常情况下返回如下

{
    "msg": null,
    "code": "A00000",
    "data": "p值"
}

示意如图
refresh_iqiyi_p.png

该接口是在登录情况下cookie某个值过期后需要刷新
网页中的接口请求的js代码函数getLoginStatusFromInterface

getLoginStatusFromInterface() {
    var e = this;
    return Object(f["a"])((function * () {
        const t = "https://passport.iqiyi.com/apis/reglogin/renew_authcookie.action",
        o = yield e.getRenewParams(),
        r = {
            params: o,
            interceptor: {
                needValidation: !1
            },
            dataType: "jsonp"
        };
        return yield Object(b["a"])(t, r)
    }))()
}

函数getLoginStatusFromInterface调用的js代码是

initPopupMessage() {
    var t = this;
    return Object(f["a"])((function * () {
        if (!t.hasLogin) return void(t.showVipMessage = !1);
        const o = e.cookie.get("QC163");
        if (o) t.showLoginExpiredTip = !1,
        t.initVipMessage();
        else {
            const e = yield t.getLoginStatusFromInterface(),
            o = "A00001" === e.code;
            t.resetLoginTimerCookie(),
            o ? (t.userLogoutFun(), t.showLoginExpiredTip = !0) : (t.showLoginExpiredTip = !1, t.initVipMessage())
        }
    }))()
}

通过QC163顺藤摸瓜发现这一段代码

resetLoginTimerCookie() {
    e.cookie.set("QC163", "1", {
        expires: 864e5,
        domain: ".iqiyi.com"
    })
}

其中864e586400000
1 天 = 24*60*60*1000 ms
所以p值需要一天内刷新一次

标签:none

最后编辑于:2019/09/22 17:19

添加新评论