认证
飞码扣使用 OAuth2 认证来保护您的账号并管理 API 访问。
OAuth2 认证如何工作
Section titled “OAuth2 认证如何工作”飞码扣使用 OAuth2 + PKCE(Proof Key for Code Exchange)流程,这是一种专为客户端应用程序设计的安全认证方法。
┌─────────────┐ 1. 请求认证 ┌──────────────┐│ VS Code │ ──────────────────────────► │ feima-idp ││ 扩展 │ │ (认证) │└─────────────┘ └──────────────┘ │ │ │ 2. 浏览器打开登录页面 │ │ ◄───────────────────────────────────────── │ │ │ │ 3. 用户登录(微信/微博) │ │ ──────────────────────────────────────────►│ │ │ │ 4. 重定向到 VS Code 并带回代码 │ │ ◄───────────────────────────────────────── │ │ │ │ 5. 交换代码获取令牌 │ │ ──────────────────────────────────────────►│ │ │ │ 6. 接收访问令牌 │ │ ◄───────────────────────────────────────── │ └─────────────┘-
打开命令面板
- 按
Ctrl+Shift+P(或 Mac 上的Cmd+Shift+P) - 输入 “Feima: 登录”
- 按
-
在浏览器中授权
- 浏览器窗口将在
https://idp.feimacode.cn/oauth/authorize打开 - 选择您的登录方式:微信或微博
- 扫描二维码或输入您的凭据
- 浏览器窗口将在
-
授予权限
- 查看请求的权限
- 点击 “授权” 以授予访问权限
-
完成登录
- 您将被重定向回 VS Code
- 成功消息:”✅ 已登录为: [your-email]“
您的令牌安全地存储在 VS Code 的加密密钥存储中:
- 访问令牌:用于 API 请求(1 小时后过期)
- 刷新令牌:用于获取新的访问令牌(30 天后过期)
- 令牌在需要时自动刷新
- 无需重复登录
查看您的账号
Section titled “查看您的账号”检查账号状态
Section titled “检查账号状态”- 按
Ctrl+Shift+P - 输入 “Feima: 查看账号”
- 查看您的账号信息:
- 邮箱地址
- 账号 ID(微信_[openid] 或 微博_[uid])
检查输出日志
Section titled “检查输出日志”- 转到 查看 → 输出
- 从下拉列表中选择 “飞码”
- 查看详细的认证日志
- 按
Ctrl+Shift+P - 输入 “Feima: 登出”
- 确认操作
- 成功消息:”✅ 已登出飞码账号”
注意:登出将删除所有存储的令牌。您需要重新登录才能使用飞码扣。
OAuth 客户端详情
Section titled “OAuth 客户端详情”飞码扣使用没有密钥的公共 OAuth 客户端:
| 属性 | 值 |
|---|---|
| client_id | vscode-feima-client |
| client_secret | 无(公共客户端) |
| redirect_uri | vscode://feima.cn-model-for-copilot/oauth/callback |
| grant_types | authorization_code、refresh_token |
| scopes | openid、profile、email |
| auth method | PKCE(Proof Key for Code Exchange) |
vscode-feima-client 在以下扩展之间共享:
- feima-code:飞码的主要 VS Code 扩展
- feima-copilot:本扩展
两个扩展可以使用相同的 OAuth 令牌,提供无缝体验。
PKCE 保护
Section titled “PKCE 保护”- 使用代码挑战和验证器进行安全代码交换
- 防止授权代码拦截攻击
- 公共客户端的标准做法
安全令牌存储
Section titled “安全令牌存储”- 令牌存储在 VS Code 的加密密钥中
- 永远不会以明文形式写入磁盘
- 与其他扩展隔离
- 仅请求最小必需的权限范围
- 无权访问用户密码
- 令牌可以随时撤销
浏览器没有打开
Section titled “浏览器没有打开”可能原因:
- VS Code 没有打开浏览器的权限
- 没有配置默认浏览器
解决方案:
- 在操作系统设置中检查 VS Code 权限
- 在系统中设置默认浏览器
- 尝试以管理员身份运行 VS Code
”无待处理回调” 错误
Section titled “”无待处理回调” 错误”可能原因:
- 回调已过期(5 分钟超时)
- 安全设置阻止了重定向 URI
- OAuth 状态不匹配
解决方案:
- 快速重新登录(5 分钟内)
- 检查浏览器安全设置
- 为重定向禁用弹出窗口阻止程序
- 查看扩展主机日志获取详细信息
”令牌交换失败”
Section titled “”令牌交换失败””可能原因:
- 网络连接问题
- 授权代码已被使用
- PKCE 验证失败
解决方案:
- 检查网络连接
- 验证 feima-idp 是否可访问:
curl https://idp.feimacode.cn/.well-known/openid-configuration - 重新登录以获取新代码
令牌没有自动刷新
Section titled “令牌没有自动刷新”可能原因:
- 刷新令牌已过期(30 天)
- 刷新期间出现网络问题
解决方案:
- 登出并重新登录
- 检查网络连接
- 如果问题持续,请联系支持
- 绝不共享您的令牌 - 它们被安全存储,永远不会暴露
- 在共享计算机上登出 - 完成后使用 “Feima: 登出”
- 保持 VS Code 更新 - 更新中包含安全改进
- 使用安全网络 - 登录时避免使用公共 Wi-Fi
- 每用户一个账号 - 每个用户应该有自己的飞码账号
- 使用您的主要邮箱 - 用于重要通知
- 如果可用,启用 2FA - 以获得额外的安全性