关于 flutter-authentication
指导 Flutter 项目实现身份验证与会话生命周期的技能,涵盖身份提供方、后端、平台重定向、凭据存储和应用状态。强调沿用现有架构,并通过针对性测试验证安全行为。
主要功能
- 01梳理身份验证与会话状态
- 02指导 OAuth、OIDC 和 PKCE 流程
- 03检查重定向、令牌及账户存储
- 04覆盖刷新、登出与账户切换
- 05使用模拟身份适配器验证状态
- 06按需查阅相关协议参考
适用场景
- 01在既有 Flutter 应用中接入登录流程
- 02排查深层链接与 OAuth 回调问题
- 03验证令牌刷新、撤销和离线启动
- 04测试登出、账户切换及进程重启
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill flutter-authentication安装后在 Claude Code 中输入/flutter-authentication确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/cases.jsonreferences/oauth-oidc-and-redirects.mdpasskeys-and-device-reauthentication.mdsessions-and-account-state.md详细介绍
Flutter 身份验证
将身份验证视为一个协议和账户状态生命周期,涵盖身份提供方、可信后端、平台重定向入口、本地会话所有者和应用 UI。除非请求迁移,否则保留项目现有的提供方、后端、SDK、路由器、存储和状态管理。
不要仅仅因为选择了此技能,就添加 SDK、客户端注册、重定向关联、密钥占位符、账户或后端。
前置检查
阅读 pubspec.yaml、SDK 约束、登录入口、提供方和后端契约、已注册的客户端和重定向、深层链接处理、令牌和账户存储、刷新协调、导航守卫、注销行为、flavor、平台关联和测试。区分身份验证、会话状态、授权和设备本地重新身份验证。
Flutter 原生客户端和 Web 客户端都是公共客户端,无法保管可重复使用的客户端密钥。对于 OAuth 或 OIDC,在提供方支持时,使用既定的授权码流程,配合 PKCE 和外部用户代理。验证重定向的归属,并根据适用情况使用 state,以及用于 OIDC 的 nonce 来关联响应。切勿仅仅因为重定向的 scheme 匹配就信任它。
按需加载参考资料
- 对于浏览器授权、PKCE、state、nonce、回调归属、深层链接和提供方错误,请阅读 OAuth、OIDC 和重定向。
- 对于令牌所有权、协调刷新、过期、注销、撤销、账户切换、启动时恢复和离线行为,请阅读 会话和账户状态。
- 对于依赖方挑战、平台关联、通行密钥生命周期、生物识别和本地授权门控,请阅读 通行密钥和设备重新身份验证。
职责边界
flutter-security负责威胁建模和全面加固;此技能负责实现正确的身份和会话行为。flutter-networking负责 HTTP 机制、拦截器和通用重试;此技能定义身份验证刷新和账户语义。flutter-navigation负责路由和返回堆栈的正确性;此技能定义已验证、未验证、回调和重新身份验证状态。flutter-persistence负责存储机制;此技能定义凭据敏感性、账户隔离、过期和删除生命周期。- 当现有插件无法满足需求时,
flutter-platform-integration负责自定义原生凭据 API 或重定向机制。
验证
使用模拟身份适配器确定性地验证状态转换,并使用获授权的非生产环境提供方进行端到端验证。覆盖成功、取消、拒绝、格式错误或重放的回调、state 和 nonce 不匹配、访问令牌过期、并发刷新、刷新失败、会话撤销、离线启动、注销、账户切换、进程重启和平台链接归属。
对于通行密钥或设备凭据,请在实际支持的设备上测试,并覆盖取消或锁定行为。说明实际观察到的提供方、客户端类型、平台、账户状态、重定向、存储和后端检查。登录界面显示成功或在本地解码令牌,并不能证明回调完整性、服务端授权、刷新安全性、撤销或注销清理均有效。