gpt4 book ai didi

authentication - 如何使用 phantomjs 从文件中使用持久化 cookie

转载 作者:行者123 更新时间:2023-12-03 10:56:27 26 4
gpt4 key购买 nike

我需要一些身份验证才能访问特定的 url。在浏览器中,我只需要登录一次,至于其他可以使用 cookie 中的 session id 的相关 url 不需要转到登录页面。
同样,我可以使用--cookies-file=cookies.txt在cookie文件中生成的cookie吗?在 phantomjs 的命令行中打开需要相同 cookie 详细信息的其他页面。

请建议。

最佳答案

Phantom JS 和 cookie
--cookies-file=cookies.txt只会在 cookie jar 中存储非 session cookie。登录和身份验证通常基于 session cookie。

session cookie呢?

保存这些非常简单,但您应该考虑到它们可能很快就会过期。

您需要编写程序逻辑来考虑这一点。例如

  • 从 cookiejar 加载 cookie
  • 点击一个 URL 来检查用户是否登录
  • 如果没有登录

    登录,将 cookie 保存到 cookiejar
  • 继续处理

  • 例子
    var fs = require('fs');
    var CookieJar = "cookiejar.json";
    var pageResponses = {};
    page.onResourceReceived = function(response) {
    pageResponses[response.url] = response.status;
    fs.write(CookieJar, JSON.stringify(phantom.cookies), "w");
    };
    if(fs.isFile(CookieJar))
    Array.prototype.forEach.call(JSON.parse(fs.read(CookieJar)), function(x){
    phantom.addCookie(x);
    });

    page.open(LoginCheckURL, function(status){
    // this assumes that when you are not logged in, the server replies with a 303
    if(pageResponses[LoginCheckURL] == 303)
    {
    //attempt login
    //assuming a resourceRequested event is fired the cookies will be written to the jar and on your next load of the script they will be found and used
    }


    });

    关于authentication - 如何使用 phantomjs 从文件中使用持久化 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739354/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com