Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

cr4sync login

把 Cloudreve / 第三方网盘的凭证落盘到 ./credential/ 目录。

五种模式

cr4sync login [--mail <EMAIL>] [--passwd <PWD>]   # ① 账密 + 2FA
cr4sync login --qr [--device-name <NAME>]         # ② 扫码 (需服务端装 qr-login-relay 插件)
cr4sync login --baidu                             # ③ 百度网盘 OAuth
cr4sync login --aliyun                            # ④ 阿里云盘中转模式
cr4sync login --pikpak                            # ⑤ PikPak 账密 / refresh 登录
cr4sync login --cloudreve                         # ⑥ 源端 cloudreve 账密登录 (迁移源)

五个分支互斥(clap conflicts_with)。

参数

参数类型适用模式说明
--mail <EMAIL>string账号。可省,缺省回退 [credential].mail
--passwd <PWD>string密码。可省,缺省回退 [credential].passwd
--qrflag扫码模式开关。
--device-name <NAME>string手机端“授权登录“页显示的设备名。缺省 cr4sync-<hostname>
--baiduflag百度 OAuth 模式。
--aliyunflag阿里云盘中转模式。
--pikpakflagPikPak 登录。
--cloudreveflag源端 cloudreve 登录 (迁移源)。探测验证码, 开启则报错“cli/serve 不支持, 用 webdav 模式“。2FA 支持。token 存 credential/sources/cloudreve.json

① 账密 + 2FA

cr4sync login --mail you@example.com --passwd 'YourPwd'

如果账号开了 2FA,cr4sync 会在终端提示输入 6 位验证码。

落盘 → ./credential/token.json(含 access_token + refresh_token)。

② 扫码登录

cr4sync login --qr
cr4sync login --qr --device-name "我的 NAS"

需要 Cloudreve 服务端安装 qr-login-relay 插件。渲染二维码前会先 GET /qr-login-relay/api/health 健康检查,未部署时拒绝并提示。

流程:

  1. 生成 X25519 keypair
  2. POST /qr-login-relay/api/session/createqr_payload
  3. 终端用 Unicode 半块字符渲染二维码
  4. 1500ms 轮询 /statusauthorized 后拿 /result
  5. X25519 共享密钥(直接当 AES-256 key,无 HKDF) + AES-256-GCM 解密
  6. 校验 payload.cloudreve 与本机 [serve.cr4].server_url 同站
  7. credential/token.json

二维码默认有效期 120 秒,超时需重新运行。Ctrl-C 随时中止。

③ 百度 OAuth

cr4sync login --baidu

流程(oob 授权码方式):

  1. 终端打印 oob 授权 URL(redirect_uri=oob
  2. 用户在浏览器打开授权 → 授权页回显授权码 code
  3. 粘贴 code 回终端
  4. cr4sync 直连百度 oauth/2.0/token?grant_type=authorization_code 兑换 access_token + refresh_token
  5. credential/sources/baidu.json

若在 [sources.baidu].refresh_token 配置了从别处导入的 refresh_token,--baidu 会跳过浏览器授权,直接用它兑换(grant_type=refresh_token)。

可选:在 [sources.baidu] 段覆盖 client_id / client_secret / redirect_uri 用独享配额应用(redirect_uri 仅影响非 oob 场景,oob 流固定 redirect_uri=oob)。

④ 阿里云盘 (中转模式)

cr4sync login --aliyun

流程(中转模式,免注册):

  1. 终端提示访问 https://alistgo.com/zh/tool/aliyundrive/request.html 扫码获取 refresh_token
  2. 用户粘贴 refresh_token
  3. cr4sync 走 alist 中转端点兑换 access_token
  4. credential/sources/aliyun.json

若在 [sources.aliyun].refresh_token 配置了 refresh_token,--aliyun 会跳过交互直接用它兑换。

⑤ PikPak (账密 / refresh 双模式)

cr4sync login --pikpak

优先级 1 — refresh_token + captcha_token (成对, 优先级最高):

  • 配置 [sources.pikpak] 填了 refresh_token + captcha_token
  • cr4sync 用 refresh_token 兑换 access_token
  • credential/sources/pikpak.json

优先级 2 — email + password 账密登录:

  • 配置 [sources.pikpak] 填了 email + password
  • cr4sync 调 PikPak login API 账密登录
  • credential/sources/pikpak.json

风控处理:

  • 账密登录失败 (被风控) 时, cr4sync 提示用户:
    1. 浏览器登录 PikPak (user.mypikpak.net)
    2. F12 -> Application -> Local Storage 找 captcha_token + refresh_token
    3. 填入 [sources.pikpak]refresh_token + captcha_token
    4. 重新执行 cr4sync login --pikpak (走优先级 1)
  • refresh_token + captcha_token 永远成对出现, 优先级高于 email + password
  • device_id 缺省 MD5(email+password), 可在 [sources.pikpak].device_id 覆盖
  • 代理: [sources.pikpak].is_proxy + proxy (跟 migrate 一致)

凭证刷新

  • Cloudreve access_token 接近过期时,sync / up / dl / mgr 自动用 refresh_token 续期,无感。
  • 百度 access_token 距过期 < 5 天时,mgr 启动自动直连百度刷新。refresh_token 也过期时报 CliError::Auth,需重 cr4sync login --baidu

错误退出

现象原因处理
扫码服务不可用qr-login-relay 插件未部署安装插件或改用账密
授权结果解密失败X25519/AES-GCM 解密失败,通常是 relay 错版升级插件
站点不匹配二维码来自其他 Cloudreve 实例确认 [serve.cr4].server_url
auth: invalid_grant百度 refresh_token 过期--baidu