GithubHelp home page GithubHelp logo

Comments (5)

Genteure avatar Genteure commented on June 12, 2024 1

为什么 Cookie 会“过期”

Cookie 是一个可读写的数据存储,网站可以往里面写入任意数据,各个网站自主决定 Cookie 里存什么数据、怎么读取和解析收到的 Cookie 内容。这里的重点是,各个网站自主决定它们怎么使用 Cookie,它就是一个简单的 KV 存储。

网站为了实现登录等功能,可能会在 Cookie 里写一个 session id 之类的值。一个很常见的做法是定时更换 session cookie 的值。一个 session cookie 是否有效完全是服务器说了算

录播姬的 Cookie 设置

浏览器里的 Cookie 功能是按域名、路径、名字存储的多条记录,发送请求时会根据域名和路径等条件把 cookie 组成一个字符串加到请求头里,会根据 response header 里的 Set-Cookie 修改。

而录播姬里的 Cookie 设置只是一个简单的文本字符串。录播姬会把 Cookie 设置项中的文本原封不动加到部分请求的请求头里 Cookie 一项里,仅此而已。

录播姬不是浏览器,没有完整复刻浏览器里 Cookie 和相关 HTTP Header 的行为,录播姬也不会像浏览器访问网站一样请求页面 HTML 和所有相关的接口。服务器认为它设置了新 Cookie 但录播姬没有更新,是符合预期的。

为什么不自动刷新 Cookie

有技术原因也有非技术原因。长话短说就是模拟浏览器里访问网站,接收、更新、维护 Cookie 内容过于麻烦,不想在录播姬里实现也不想维护相关代码。

如果有需求,可以自己写代码在录播姬外部维护一个可用的 Cookie 然后使用录播姬命令行版的 HTTP API 设置到录播姬里。

为什么不加一个登录功能

同上。

能不能自动测试

建议在录播姬外写脚本实现。可以用 HTTP API 读当前录播姬里设置的 Cookie,或者在外部维护 Cookie 内容再通过 HTTP API 传给录播姬,两个方向都可以。

总结

  • Cookie 怎么用、内容是否有效完全由对应的网站决定。
  • 录播姬只提供了一个设置 HTTP 请求头 Cookie 一项的值的方法。
  • 其他状态维护功能建议在外部实现,用 HTTP API 与录播姬交互。

from bililiverecorder.

komori-flag avatar komori-flag commented on June 12, 2024 1

Cookie 的过期与否不是录播姬能决定的,决定权在啊b手上;
如果想能够实现 Cookie 更新 / 过期提醒,可通过撰写脚本程序等方式;
涉及啊b账号相关的功能并不想加入到此项目当中,原因的话想想 BiliPlus 便可知。

既然选择了将自己的账号登录态 Cookie 添加进录播姬当中,那么之后所发生的任何情况请自行承担。

如您知晓您的账号会因以上所列出的部分原因导致账号无法正常使用或权益受损等情况,并愿意承担由此所带来的一系列后果,请继续以下的操作,录播姬的开发者不会对您的账号所发生的任何后果承担责任。

from bililiverecorder.

wintertee avatar wintertee commented on June 12, 2024 1

似乎使用浏览器中复制得到的cookie似乎有效期很短(nilaoda/BBDown#507)。BBDown的方式是手机客户端扫描二维码获得一个新的cookie。我现在填写的cookie是BBdown二维码扫描登录,从BBDown.data文件中拷贝过来的,用了一周左右还没有失效。

from bililiverecorder.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.