Repository: AlistGo/alist (language: go)

Issue:
115网盘无法登陆
### Please make sure of the following things

- [X] I have read the [documentation](https://alist.nn.ci).
我已经阅读了[文档](https://alist.nn.ci)。

- [X] I'm sure there are no duplicate issues or discussions.
我确定没有重复的issue或讨论。

- [X] I'm sure it's due to `AList` and not something else(such as [Network](https://alist.nn.ci/faq/howto.html#tls-handshake-timeout-read-connection-reset-by-peer-dns-lookup-failed-connect-connection-refused-client-timeout-exceeded-while-awaiting-headers-no-such-host) ,`Dependencies` or `Operational`).
我确定是`AList`的问题，而不是其他原因（例如[网络](https://alist.nn.ci/zh/faq/howto.html#tls-handshake-timeout-read-connection-reset-by-peer-dns-lookup-failed-connect-connection-refused-client-timeout-exceeded-while-awaiting-headers-no-such-host)，`依赖`或`操作`）。

- [X] I'm sure this issue is not fixed in the latest version.
我确定这个问题在最新版本中没有被修复。


### AList Version / AList 版本

V3.40.0

### Driver used / 使用的存储驱动

115

### Describe the bug / 问题描述

failed get objs: failed to list objs: {"state":false,"error":"登录超时，请重新登录。","errNo":990001,"request":"\/files?aid=1&asc=1&cid=2971466151814495619&fc_mix=0&format=json&limit=56&natsort=0&o=user_ptime&offset=0&record_open_time=1&show_dir=1&snap=0"}: user not login

### Reproduction / 复现链接

failed get objs: failed to list objs: {"state":false,"error":"登录超时，请重新登录。","errNo":990001,"request":"\/files?aid=1&asc=1&cid=2971466151814495619&fc_mix=0&format=json&limit=56&natsort=0&o=user_ptime&offset=0&record_open_time=1&show_dir=1&snap=0"}: user not login

### Config / 配置

failed get objs: failed to list objs: {"state":false,"error":"登录超时，请重新登录。","errNo":990001,"request":"\/files?aid=1&asc=1&cid=2971466151814495619&fc_mix=0&format=json&limit=56&natsort=0&o=user_ptime&offset=0&record_open_time=1&show_dir=1&snap=0"}: user not login

### Logs / 日志

_No response_


Discussion / hints:
### See
1. 56% #3753
2. 56% #2628
3. 54% #6860

<!-- Created by actions-cool/issues-similarity-analysis. Do not remove. -->
ck增加了新字段 kid 只能等更新了
可以临时换这个版本
https://github.com/pongfcnkl/alist/actions/runs/12173243540
比原来多了KID之后就不能挂载了
qrcode 要改设备类型暂时能登
ps我错了 又不能登了
> 可以临时换这个版本
> 
> https://github.com/pongfcnkl/alist/actions/runs/12173243540

docker怎么办😳
> > 可以临时换这个版本
> > https://github.com/pongfcnkl/alist/actions/runs/12173243540
> 
> docker怎么办😳

docker 也可以自行替换启动文件啊
今天突然出现异常，error log:

failed get objs: failed to list objs: {"state":false,"error":"登录超时，请重新登录。","errNo":990001,"request":"\/files?aid=1&asc=1&cid=0&fc_mix=0&format=json&limit=10240&natsort=0&o=user_ptime&offset=0&record_open_time=1&show_dir=1&snap=0"}: user not login
> > 可以临时换这个版本
> > https://github.com/pongfcnkl/alist/actions/runs/12173243540
> > 
> > docker怎么办😳

> "error":"登录超时，请重新登录。","errNo":990001

也可以解决上面问题吗？

> 可以临时换这个版本 https://github.com/pongfcnkl/alist/actions/runs/12173243540

> "error":"登录超时，请重新登录。","errNo":990001

我菜鸟，可以细详说下，如何替换吗？@pongfcnkl  

> > 可以临时换这个版本 https://github.com/pongfcnkl/alist/actions/runs/12173243540
> 
> > "error":"登录超时，请重新登录。","errNo":990001
> 
> 我菜鸟，可以细详说下，如何替换吗？@pongfcnkl

复制粘贴
> > 可以临时换这个版本 https://github.com/pongfcnkl/alist/actions/runs/12173243540
> 
> @pongfcnkl 可以介绍下变更内容吗，是如何解决cookie里新增kid导致的问题
> 
> [这个commit](https://github.com/pongfcnkl/alist/commit/bf68f99d14f32156efe1211b9d3ee8e1b2da3640#diff-a3abd6690352bdaef5ce8f3c0569bd9ac31c48c97f3e59c67cde82f030315bc7L6)里看起来就是修改了115driver包的仓库为[pongfcnkl/115driver](github.com/pongfcnkl/115driver)
> 
> [pongfcnkl/115driver](github.com/pongfcnkl/115driver)仓库里[对比上游](https://github.com/SheltonZhu/115driver/compare/main...pongfcnkl:115driver:main)只改了一个模块名
> 
> 难道关键代码是前几个commit中的升级github.com/SheltonZhu/115driver v1.0.30

@pongfcnkl 一样问题，没有成功。
链接: https://caiyun.139.com/m/i?014MdMT3zq8zH  提取码:d4fr  复制内容打开中国移动云盘手机APP，操作更方便哦
我自己编译了个alist_3.40.0-r1_aarch64_cortex-a53版本，大家自己提取，采用上面的新版本，应该可以用，但是要在cookie里加个KID参数
> 链接: https://caiyun.139.com/m/i?014MdMT3zq8zH 提取码:d4fr 复制内容打开中国移动云盘手机APP，操作更方便哦 我自己编译了个alist_3.40.0-r1_aarch64_cortex-a53版本，大家自己提取，采用上面的新版本，应该可以用，但是要在cookie里加个KID参数

好的， 谢谢，试下。
能不能更新一下docker版本，谢谢啊，周末了，遇上这事看不了了。
> > > 可以临时换这个版本 https://github.com/pongfcnkl/alist/actions/runs/12173243540
> > 
> > 
> > @pongfcnkl 可以介绍下变更内容吗，是如何解决cookie里新增kid导致的问题
> > [这个commit](https://github.com/pongfcnkl/alist/commit/bf68f99d14f32156efe1211b9d3ee8e1b2da3640#diff-a3abd6690352bdaef5ce8f3c0569bd9ac31c48c97f3e59c67cde82f030315bc7L6)里看起来就是修改了115driver包的仓库为[pongfcnkl/115driver](github.com/pongfcnkl/115driver)
> > [pongfcnkl/115driver](github.com/pongfcnkl/115driver)仓库里[对比上游](https://github.com/SheltonZhu/115driver/compare/main...pongfcnkl:115driver:main)只改了一个模块名
> > 难道关键代码是前几个commit中的升级github.com/SheltonZhu/115driver v1.0.30
> 
> @pongfcnkl 一样问题，没有成功。

謝謝！！ @pongfcnkl 
使用上完全沒問題。。。
需要自己編譯所需的版本，

貌似大佬只留下需要的lib，其它不需要的服務都刪了..
這,就行了...
謝謝大佬！@pongfcnkl 



遇到了同样的问题,之前挂载的非115会员账号没事,昨晚想挂个115会员的新账号就一直提示登陆超时.
apptv的alist什么更新，也遇到这个问题了
> apptv的alist什么更新，也遇到这个问题了

真是见了鬼了，之前某些文件夹访问报错，去更新了下没法挂载了，作者不出面说下吗，不是软件适配问题那是115的什么导致无法解决
> > apptv的alist什么更新，也遇到这个问题了
> 
> 真是见了鬼了，之前某些文件夹访问报错，去更新了下没法挂载了，作者不出面说下吗，不是软件适配问题那是115的什么导致无法解决

115的cookie增加了一个新参数，要么等作者更新，要么就像上面自己编译一下就可以用了
> > > 可以临时换这个版本
> > > https://github.com/pongfcnkl/alist/actions/runs/12173243540
> > 
> > 
> > docker怎么办😳
> 
> docker 也可以自行替换启动文件啊

Docker怎么替换文件？
> > > > 可以临时换这个版本
> > > > https://github.com/pongfcnkl/alist/actions/runs/12173243540
> > > 
> > > 
> > > docker怎么办😳
> > 
> > 
> > docker 也可以自行替换启动文件啊
> 
> Docker怎么替换文件？

如果用的官方docker镜像，参考下面的命令
docker cp 自己下载的alist二进制路径 容器id:/opt/alist/alist

@pongfcnkl 谢谢哈可以了，转需，如果遇到有权限问题可以先设置一下权限（假如你是把对应的文件上传到这个位置
`chmod +x /tmp/alist-linux-musl-amd64`，然后再执行cp 操作就可以了。
> > > > > 可以临时换这个版本
> > > > > https://github.com/pongfcnkl/alist/actions/runs/12173243540
> > > > 
> > > > 
> > > > docker怎么办😳
> > > 
> > > 
> > > docker 也可以自行替换启动文件啊
> > 
> > 
> > Docker怎么替换文件？
> 
> 如果用的官方docker镜像，参考下面的命令 docker cp 自己下载的alist二进制路径 容器id:/opt/alist/alist

解决了，谢谢大佬。

Fix patch:
diff --git a/drivers/115/util.go b/drivers/115/util.go
index 33e345706d2..d7a1adff71c 100644
--- a/drivers/115/util.go
+++ b/drivers/115/util.go
@@ -27,8 +27,7 @@ import (
 	"github.com/pkg/errors"
 )
 
-//var UserAgent = driver115.UA115Browser
-
+// var UserAgent = driver115.UA115Browser
 func (d *Pan115) login() error {
 	var err error
 	opts := []driver115.Option{
@@ -46,7 +45,7 @@ func (d *Pan115) login() error {
 		if cr, err = d.client.QRCodeLoginWithApp(s, driver115.LoginApp(d.QRCodeSource)); err != nil {
 			return errors.Wrap(err, "failed to login by qrcode")
 		}
-		d.Cookie = fmt.Sprintf("UID=%s;CID=%s;SEID=%s", cr.UID, cr.CID, cr.SEID)
+		d.Cookie = fmt.Sprintf("UID=%s;CID=%s;SEID=%s;KID=%s", cr.UID, cr.CID, cr.SEID, cr.KID)
 		d.QRCodeToken = ""
 	} else if d.Cookie != "" {
 		if err = cr.FromCookie(d.Cookie); err != nil {
diff --git a/drivers/115_share/utils.go b/drivers/115_share/utils.go
index 812352ef42a..1f9e112deef 100644
--- a/drivers/115_share/utils.go
+++ b/drivers/115_share/utils.go
@@ -96,7 +96,7 @@ func (d *Pan115Share) login() error {
 		if cr, err = d.client.QRCodeLoginWithApp(s, driver115.LoginApp(d.QRCodeSource)); err != nil {
 			return errors.Wrap(err, "failed to login by qrcode")
 		}
-		d.Cookie = fmt.Sprintf("UID=%s;CID=%s;SEID=%s", cr.UID, cr.CID, cr.SEID)
+		d.Cookie = fmt.Sprintf("UID=%s;CID=%s;SEID=%s;KID=%s", cr.UID, cr.CID, cr.SEID, cr.KID)
 		d.QRCodeToken = ""
 	} else if d.Cookie != "" {
 		if err = cr.FromCookie(d.Cookie); err != nil {
diff --git a/go.mod b/go.mod
index 19bc7c2e627..be63182399b 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@ module github.com/alist-org/alist/v3
 go 1.22.4
 
 require (
-	github.com/SheltonZhu/115driver v1.0.29
+	github.com/SheltonZhu/115driver v1.0.32
 	github.com/Xhofe/go-cache v0.0.0-20240804043513-b1a71927bc21
 	github.com/Xhofe/rateg v0.0.0-20230728072201-251a4e1adad4
 	github.com/alist-org/gofakes3 v0.0.7
@@ -64,7 +64,7 @@ require (
 	golang.org/x/image v0.19.0
 	golang.org/x/net v0.28.0
 	golang.org/x/oauth2 v0.22.0
-	golang.org/x/time v0.6.0
+	golang.org/x/time v0.8.0
 	google.golang.org/appengine v1.6.8
 	gopkg.in/ldap.v3 v3.1.0
 	gorm.io/driver/mysql v1.5.7
diff --git a/go.sum b/go.sum
index 78ac273a5bf..f1ff39b3157 100644
--- a/go.sum
+++ b/go.sum
@@ -7,8 +7,8 @@ github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd h1:nzE1YQBdx1bq9
 github.com/Max-Sum/base32768 v0.0.0-20230304063302-18e6ce5945fd/go.mod h1:C8yoIfvESpM3GD07OCHU7fqI7lhwyZ2Td1rbNbTAhnc=
 github.com/RoaringBitmap/roaring v1.9.3 h1:t4EbC5qQwnisr5PrP9nt0IRhRTb9gMUgQF4t4S2OByM=
 github.com/RoaringBitmap/roaring v1.9.3/go.mod h1:6AXUsoIEzDTFFQCe1RbGA6uFONMhvejWj5rqITANK90=
-github.com/SheltonZhu/115driver v1.0.29 h1:yFBqFDYJyADo3eG2RjJgSovnFd1OrpGHmsHBi6j0+r4=
-github.com/SheltonZhu/115driver v1.0.29/go.mod h1:e3fPOBANbH/FsTya8FquJwOR3ErhCQgEab3q6CVY2k4=
+github.com/SheltonZhu/115driver v1.0.32 h1:Taw1bnfcPJZW0xTdhDvEbBS1tccif7J7DslRp2NkDyQ=
+github.com/SheltonZhu/115driver v1.0.32/go.mod h1:XXFi23pyhAgzUE8dUEKdGvIdUQKi3wv6zR7C1Do40D8=
 github.com/Unknwon/goconfig v1.0.0 h1:9IAu/BYbSLQi8puFjUQApZTxIHqSwrj5d8vpP8vTq4A=
 github.com/Unknwon/goconfig v1.0.0/go.mod h1:wngxua9XCNjvHjDiTiV26DaKDT+0c63QR6H5hjVUUxw=
 github.com/Xhofe/go-cache v0.0.0-20240804043513-b1a71927bc21 h1:h6q5E9aMBhhdqouW81LozVPI1I+Pu6IxL2EKpfm5OjY=
@@ -393,6 +393,8 @@ github.com/orzogc/fake115uploader v0.3.3-0.20230715111618-58f9eb76f831 h1:K3T3eu
 github.com/orzogc/fake115uploader v0.3.3-0.20230715111618-58f9eb76f831/go.mod h1:lSHD4lC4zlMl+zcoysdJcd5KFzsWwOD8BJbyg1Ws9Ng=
 github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU=
 github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w=
+github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks=
+github.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM=
 github.com/panjf2000/ants/v2 v2.4.2/go.mod h1:f6F0NZVFsGCp5A7QW/Zj/m92atWwOkY0OIhFxRNFr4A=
 github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
 github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
@@ -512,8 +514,6 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
 github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
 github.com/xhofe/gsync v0.0.0-20230917091818-2111ceb38a25 h1:eDfebW/yfq9DtG9RO3KP7BT2dot2CvJGIvrB0NEoDXI=
 github.com/xhofe/gsync v0.0.0-20230917091818-2111ceb38a25/go.mod h1:fH4oNm5F9NfI5dLi0oIMtsLNKQOirUDbEMCIBb/7SU0=
-github.com/xhofe/tache v0.1.2 h1:pHrXlrWcbTb4G7hVUDW7Rc+YTUnLJvnLBrdktVE1Fqg=
-github.com/xhofe/tache v0.1.2/go.mod h1:iKumPFvywf30FRpAHHCt64G0JHLMzT0K+wyGedHsmTQ=
 github.com/xhofe/tache v0.1.3 h1:MipxzlljYX29E1YI/SLC7hVomVF+51iP1OUzlsuq1wE=
 github.com/xhofe/tache v0.1.3/go.mod h1:iKumPFvywf30FRpAHHCt64G0JHLMzT0K+wyGedHsmTQ=
 github.com/xhofe/wopan-sdk-go v0.1.3 h1:J58X6v+n25ewBZjb05pKOr7AWGohb+Rdll4CThGh6+A=
@@ -663,8 +663,9 @@ golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
 golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
 golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
+golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190829051458-42f498d34c4d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=


Test patch: