跳转到内容

认证

飞码扣使用 OAuth2 认证来保护您的账号并管理 API 访问。

飞码扣使用 OAuth2 + PKCE(Proof Key for Code Exchange)流程,这是一种专为客户端应用程序设计的安全认证方法。

┌─────────────┐ 1. 请求认证 ┌──────────────┐
│ VS Code │ ──────────────────────────► │ feima-idp │
│ 扩展 │ │ (认证) │
└─────────────┘ └──────────────┘
│ │
│ 2. 浏览器打开登录页面 │
│ ◄───────────────────────────────────────── │
│ │
│ 3. 用户登录(微信/微博) │
│ ──────────────────────────────────────────►│
│ │
│ 4. 重定向到 VS Code 并带回代码 │
│ ◄───────────────────────────────────────── │
│ │
│ 5. 交换代码获取令牌 │
│ ──────────────────────────────────────────►│
│ │
│ 6. 接收访问令牌 │
│ ◄───────────────────────────────────────── │
└─────────────┘
  1. 打开命令面板

    • Ctrl+Shift+P(或 Mac 上的 Cmd+Shift+P
    • 输入 “Feima: 登录”
  2. 在浏览器中授权

    • 浏览器窗口将在 https://idp.feimacode.cn/oauth/authorize 打开
    • 选择您的登录方式:微信或微博
    • 扫描二维码或输入您的凭据
  3. 授予权限

    • 查看请求的权限
    • 点击 “授权” 以授予访问权限
  4. 完成登录

    • 您将被重定向回 VS Code
    • 成功消息:”✅ 已登录为: [your-email]“

您的令牌安全地存储在 VS Code 的加密密钥存储中:

  • 访问令牌:用于 API 请求(1 小时后过期)
  • 刷新令牌:用于获取新的访问令牌(30 天后过期)
  • 令牌在需要时自动刷新
  • 无需重复登录
  1. Ctrl+Shift+P
  2. 输入 “Feima: 查看账号”
  3. 查看您的账号信息:
    • 邮箱地址
    • 账号 ID(微信_[openid] 或 微博_[uid])
  1. 转到 查看 → 输出
  2. 从下拉列表中选择 “飞码”
  3. 查看详细的认证日志
  1. Ctrl+Shift+P
  2. 输入 “Feima: 登出”
  3. 确认操作
  4. 成功消息:”✅ 已登出飞码账号”

注意:登出将删除所有存储的令牌。您需要重新登录才能使用飞码扣。

飞码扣使用没有密钥的公共 OAuth 客户端:

属性
client_idvscode-feima-client
client_secret无(公共客户端)
redirect_urivscode://feima.cn-model-for-copilot/oauth/callback
grant_typesauthorization_coderefresh_token
scopesopenidprofileemail
auth methodPKCE(Proof Key for Code Exchange)

vscode-feima-client 在以下扩展之间共享:

  • feima-code:飞码的主要 VS Code 扩展
  • feima-copilot:本扩展

两个扩展可以使用相同的 OAuth 令牌,提供无缝体验。

  • 使用代码挑战和验证器进行安全代码交换
  • 防止授权代码拦截攻击
  • 公共客户端的标准做法
  • 令牌存储在 VS Code 的加密密钥中
  • 永远不会以明文形式写入磁盘
  • 与其他扩展隔离
  • 仅请求最小必需的权限范围
  • 无权访问用户密码
  • 令牌可以随时撤销

可能原因

  • VS Code 没有打开浏览器的权限
  • 没有配置默认浏览器

解决方案

  1. 在操作系统设置中检查 VS Code 权限
  2. 在系统中设置默认浏览器
  3. 尝试以管理员身份运行 VS Code

可能原因

  • 回调已过期(5 分钟超时)
  • 安全设置阻止了重定向 URI
  • OAuth 状态不匹配

解决方案

  1. 快速重新登录(5 分钟内)
  2. 检查浏览器安全设置
  3. 为重定向禁用弹出窗口阻止程序
  4. 查看扩展主机日志获取详细信息

可能原因

  • 网络连接问题
  • 授权代码已被使用
  • PKCE 验证失败

解决方案

  1. 检查网络连接
  2. 验证 feima-idp 是否可访问:curl https://idp.feimacode.cn/.well-known/openid-configuration
  3. 重新登录以获取新代码

可能原因

  • 刷新令牌已过期(30 天)
  • 刷新期间出现网络问题

解决方案

  1. 登出并重新登录
  2. 检查网络连接
  3. 如果问题持续,请联系支持
  1. 绝不共享您的令牌 - 它们被安全存储,永远不会暴露
  2. 在共享计算机上登出 - 完成后使用 “Feima: 登出”
  3. 保持 VS Code 更新 - 更新中包含安全改进
  4. 使用安全网络 - 登录时避免使用公共 Wi-Fi
  1. 每用户一个账号 - 每个用户应该有自己的飞码账号
  2. 使用您的主要邮箱 - 用于重要通知
  3. 如果可用,启用 2FA - 以获得额外的安全性