ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Kaggle CLI 认证完全指南:OAuth 登录、Access Token 打印与撤销机制解析

Kaggle CLI 认证完全指南:OAuth 登录、Access Token 打印与撤销机制解析 CLI开发工具数据科学【免费下载链接】kaggle-apiOfficial Kaggle CLI项目地址https://gitcode.com/gh_mirrors/ka/kaggle-api点击查看免费下载导读kaggle auth是 Kaggle 官方 CLI 的认证命令组统一管理 OAuth 登录、访问令牌access token的打印与撤销并兼容KAGGLE_API_TOKEN、~/.kaggle/access_token与传统的 API key 认证方式。本文以官方认证参考文档为骨架结合仓库源码与单元测试系统讲解三个子命令的用法、认证来源的尝试顺序、令牌时长的解析规则与无凭证场景的兜底行为帮助你彻底掌握 Kaggle CLI 的认证体系并能在 CI/CD 等非交互环境中正确配置令牌。前置条件在使用kaggle auth之前需要满足以下条件Python 3.11且已安装kaggle包通过pip install kaggle安装一个 Kaggle 账号浏览器访问能力默认 OAuth 登录流程会拉起浏览器完成授权无浏览器环境可加--no-launch-browser仅打印授权 URL 手动完成。命令层级一览kaggle auth是一个三子命令的命令组源码中由parse_auth注册见 cli.pykaggle auth ├── login # OAuth 登录 ├── print-access-token # 打印当前账号的访问令牌 └── revoke # 撤销当前账号的刷新令牌三个子命令分别绑定到KaggleApi类的auth_login_cli、auth_print_access_token与auth_revoke_token方法kaggle_api_extended.py。认证来源与尝试顺序CLI 在每次执行需要认证的命令时会按照固定顺序依次尝试以下认证来源对应 authenticate() 的实现Access token 来源包括环境变量KAGGLE_API_TOKEN或~/.kaggle/access_token文件中的令牌传统 API key来自环境变量KAGGLE_USERNAME/KAGGLE_KEY或配置文件~/.kaggle/kaggle.json中的username与key字段OAuth 凭据由kaggle auth login生成并缓存的本地 OAuth 凭据。若以上全部失败CLI 会打印认证帮助信息并退出exit(1)。这一顺序在 test_authenticate.py 中有完整的单测覆盖access token 成功则不再尝试 legacy keylegacy key 成功则跳过 OAuthOAuth 成功则跳过匿名模式。从源码结构看这一顺序还与AuthMethod枚举一一对应kaggle_api_extended.pyLEGACY_API_KEY、ACCESS_TOKEN、OAUTH认证成功后该值会被写入config_values[auth_method]供kaggle config view等命令展示当前生效的认证方式。允许未登录执行的命令并非所有命令都强制要求认证。以下几类场景允许匿名logged out访问帮助与版本命令如kaggle -h、kaggle --version、各子命令的--help部分公开数据集命令如kaggle datasets download、kaggle datasets files等以datasets download前缀开头的公开数据集文件/下载流程。匿名判定实现在_authenticate_anonymously与_command_allows_logged_outkaggle_api_extended.py且仅当进程确实以 Kaggle CLI 方式被调用控制台入口kaggle或python -m kaggle时才生效避免库被第三方应用 import 时误判。测试 test_authenticate.py 验证了datasets download可匿名、datasets status不可匿名的差异。kaggle auth loginOAuth 登录用法kaggle auth login [options]参数参数说明--no-launch-browser不拉起浏览器改为打印授权 URL适合无图形界面的服务器环境--force即使当前账号已登录也强制重新执行登录流程示例kaggle auth login kaggle auth login --no-launch-browser kaggle auth login --force行为细节重复登录保护若本地已存在 OAuth 凭据且未加--force命令会打印当前已登录账号如You are already logged-in to Kaggle as [用户名]并提示使用--force覆盖随后退出auth_login_cli默认权限范围OAuth 流程请求的默认 scope 为resources.admin:*源码注释表明这是为了允许访问所有 ApiV1 端点凭据本地缓存登录成功后 OAuth 凭据缓存在本地无需手工管理令牌。kaggle auth print-access-token打印访问令牌用法kaggle auth print-access-token [options]参数参数说明--expiration DURATION覆盖默认令牌有效期。格式为正整数 单位后缀单位支持s秒、m分钟、h小时、d天、w周例如6h、30m、2d示例kaggle auth print-access-token kaggle auth print-access-token --expiration 6h行为细节前置条件必须已通过kaggle auth login获得 OAuth 凭据若不存在命令提示先运行kaggle auth login后退出auth_print_access_token输出物用途打印出的令牌可直接放入KAGGLE_API_TOKEN环境变量或~/.kaggle/access_token文件用于非交互场景时长格式严格性--expiration仅接受正整数 单一单位后缀。不支持复合格式如2h30s和冒号格式如2:30。解析实现在_parse_durationkaggle_api_extended.py先取末位字符映射单位_DURATION_UNITS再解析前面的整数数值必须大于 0否则抛出ValueError。最终转换为dateutil.relativedelta传给creds.generate_access_token(expiration)生成新令牌该解析逻辑对应的单测可参考 test_parse_duration.py。kaggle auth revoke撤销刷新令牌用法kaggle auth revoke [options]参数参数说明--reason TEXT发送给服务器的撤销原因说明示例kaggle auth revoke kaggle auth revoke --reason rotating credentials行为细节无凭据时的优雅退出若本地不存在 OAuth 凭据命令打印There is no token to revoke.并以成功状态exit(0)退出不会报错auth_revoke_token默认原因未提供--reason时默认原因固定为Manually revoked by user with kaggle-cli与文档描述一致撤销操作通过creds.revoke_token(reason)完成使当前账号的刷新令牌立即失效可用于凭据轮换、安全告警等场景。传统 API Key 与 Token 认证方式除 OAuth 外CLI 还支持两类无需交互的认证方式1.KAGGLE_API_TOKEN/~/.kaggle/access_token令牌可来自环境变量KAGGLE_API_TOKEN或文件~/.kaggle/access_token当令牌 introspection服务端校验成功时即使没有传统的username/key组合也能完成认证_authenticate_with_access_tokenintrospection 失败令牌无效或过期时会被忽略认证链继续向下尝试。校验逻辑见_introspect_tokenkaggle_api_extended.py。2. 传统 API keykaggle.json与环境变量配置文件默认位于~/.kaggle/kaggle.json包含username与key字段也可通过KAGGLE_CONFIG_DIR环境变量自定义配置目录环境变量KAGGLE_USERNAME、KAGGLE_KEY与配置文件等价加载时所有KAGGLE_前缀的环境变量会被自动映射为小写配置键见 read_config_environment认证方法_authenticate_with_legacy_apikey仅在config_values中同时存在username与key时才成功kaggle_api_extended.py安全提醒读取kaggle.json时若文件权限存在被其他用户读取的风险os.name ! nt且文件权限含 group/other 读位CLI 会打印警告并建议执行chmod 600 ~/.kaggle/kaggle.jsonread_config_file。推荐组合交互式环境优先kaggle auth loginOAuth 凭据本地缓存无需手动管理令牌CI/容器/脚本优先KAGGLE_API_TOKEN配合kaggle auth print-access-token --expiration生成短期令牌轮换使用。401 未授权时的自动引导当已认证请求被服务端拒绝HTTP 401时cli.py 会捕获HTTPError并调用print_auth_help()输出友好的认证指引——提示注册账号、推荐kaggle auth login以及KAGGLE_API_TOKEN与~/.kaggle/access_token两种令牌供给方式print_auth_help。这意味着你无需记忆完整帮助文本遇到 401 时 CLI 会直接给出可操作的下一步。认证失败排查要点结合源码与测试常见问题可按如下顺序排查检查生效的认证来源运行kaggle config view查看当前username与auth_method确认是哪一类凭据在生效见 kaggle_api_extended.py令牌类问题KAGGLE_API_TOKEN或~/.kaggle/access_token中的令牌过期或无效时introspection 会失败并被静默跳过——可通过kaggle auth login重新登录后用kaggle auth print-access-token --expiration 6h生成新令牌替换--expiration格式错误_parse_duration会直接抛错并给出提示注意仅支持正整数单后缀s/m/h/d/w不支持2h30s或2:30这类写法凭据文件权限若kaggle.json权限过宽CLI 会给出chmod 600警告按提示修正即可撤销后重新登录执行kaggle auth revoke后旧凭据立即失效需要重新kaggle auth login才能继续 OAuth 认证。结语kaggle auth将 OAuth 登录、令牌打印与撤销收敛为三个子命令配合KAGGLE_API_TOKEN、~/.kaggle/access_token与 legacy API key 的阶梯式回退覆盖了从个人开发到 CI 流水线的全部认证场景。理解其认证来源的尝试顺序与令牌时长解析规则即可在无头环境中稳定地完成凭据初始化与轮换。更多 CLI 命令总览与各模块用法可参考 skills/SKILL.md 与 docs/configuration.md。赞分享CLI开发工具数据科学【免费下载链接】kaggle-apiOfficial Kaggle CLI项目地址https://gitcode.com/gh_mirrors/ka/kaggle-api点击查看免费下载相关推荐Label Studio Access Tokens 完全指南Personal Access Token 与 Legacy Token 的认证体系解析Label Studio Access Tokens 完全指南Personal Access Token 与 Legacy Token 的认证体系解析 导读数据标注人工智能Yii 2 用户认证完全指南user 组件、IdentityInterface 与登录/注销机制实战解析Yii 2 用户认证完全指南user 组件、IdentityInterface 与登录/注销机制实战解析 导读 用户认证Authentication是 W后端Web框架ClawHub 认证体系完全指南GitHub 登录、API Token 与 CLI 设备流实战ClawHub 认证体系完全指南GitHub 登录、API Token 与 CLI 设备流实战 本文围绕 ClawHub 仓库的 docs/auth.md h后端前端AI 技能AI 插件搜索引擎上一篇Operit Codex PDF 附件输入复用媒体池将 PDF 转为 Responses input_file 的实现解析下一篇Mac 窗口管理工具 Loop5 分钟搞定分屏、循环与自定义创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表