You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub上隐藏Flutter项目JSON文件中的admin_token

解决Flutter项目中敏感Token的隐藏方案

核心方案说明

你没法直接在GitHub仓库的代码文件里用$ADMIN_TOKEN变量让平台自动替换——GitHub本身不提供代码内变量替换的功能,但可以通过以下流程实现Token隐藏且不影响project-1的依赖调用:

1. 紧急处理已泄露的Token

  • 立刻前往Token对应的服务平台,作废当前的admin_token并生成新Token,防止被恶意滥用。
  • 使用git filter-repo或BFG Repo-Cleaner工具彻底清除仓库历史中的明文Token(操作后需强制推送仓库,同时通知所有协作者重新克隆仓库)。

2. 重构person.json的配置方式

  • 将原person.json重命名为person.template.json,把admin_token字段改为占位符:
    {
      "admin_token": "$ADMIN_TOKEN",
      // 其他原有字段...
    }
    
  • 在.gitignore中添加person.json,禁止该文件提交到GitHub。

3. 通过环境变量注入真实Token

  • 在本地开发环境或CI/CD环境中,设置环境变量ADMIN_TOKEN为新生成的真实Token值。
  • 编写简单脚本(Shell或Dart脚本均可),在project-2构建/运行前,将person.template.json中的占位符替换为环境变量值,生成实际可用的person.json供project-1调用。
    示例Shell脚本:
    #!/bin/bash
    envsubst < person.template.json > person.json
    
  • 若是Flutter项目,也可在pubspec.yaml中添加脚本钩子,确保依赖获取完成后自动执行替换操作。

4. GitHub存储变量的正确方式

  • 可以利用GitHub Secrets存储真实的ADMIN_TOKEN值(路径:仓库Settings -> Secrets and variables -> Actions)。
  • 如果项目使用GitHub Actions做CI/CD,可在构建流程中调用Secrets中的值,执行替换脚本生成person.json后,再完成后续构建或发布步骤。

注意事项

  • 需同步告知所有协作者新的配置流程,本地必须设置对应环境变量才能生成正确的person.json。
  • 绝对不要将包含敏感信息的配置文件提交到公开仓库,哪怕是历史提交记录也要彻底清除。

内容的提问来源于stack exchange,提问作者fayir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:12:04