Android 邮箱验证技能
使用 Credential Manager API 实现无 OTP 的邮箱验证流程,简化注册与登录。
证据显示技能强调服务端验证、nonce防重放、issuer和签名验证,并明确客户端解析不作为安全边界。未发现恶意代码或越权行为。但技能依赖Google服务(GMS、Credential Manager),且未提供明确的回滚或故障恢复机制。扣除7分,因为权限最小化、用户确认和数据流披露基本清晰,但回滚和依赖安全细节不足。
技能提供了详细的实现步骤、代码示例和异常处理建议,但未提供可执行的测试用例或CI配置,且依赖外部服务(如Google的验证服务)的可用性未验证。按静态评估上限,给予8分,因为关键路径有合理描述,但缺乏可复现的测试证据。
技能明确了目标场景(账户创建、恢复、重认证)和适用范围(仅Android客户端),并说明了非适用场景(如Workspace账户)。但未明确触发条件(何时应调用该技能),且对中国大陆网络环境下Google服务的可达性未做说明。扣除5分,因为边界清晰但环境适配证据不足。
技能有明确的结构:概述、需求、用例、限制、实现步骤、安全指南,并提供了相关引用。但缺少版本历史、维护责任人和已知问题列表。作者声称为Google LLC,但未经验证。扣除3分,因为文档可读性好但治理信息不完整。
技能核心是实现验证邮箱的流程,描述清晰,但未提供实际运行结果或用户反馈,无法验证输出是否直接可用。按静态评估上限,给予6分,因为价值主张合理但缺乏实际效果证据。
技能引用了标准和官方文档,但未提供可复现的测试或验证结果。依赖Google的官方文档和服务,但自身无演示或第三方验证。按静态评估上限,给予4分,因为来源可审计但覆盖不足。
- 技能依赖Google Play服务(GMS)和Credential Manager,在中国大陆网络环境下可能无法正常访问,需提前评估。
- 技能明确指出服务端验证是强制要求,但未提供服务端实现细节,开发者需自行实现后端验证逻辑。
- 对非Gmail邮箱,技能建议额外使用OTP等挑战,但未提供具体实现指导,需注意。
这个 Skill 能做什么,适合哪些场景?
该技能提供在 Android 应用中集成邮箱验证的完整工作流,利用 Credential Manager 和 OpenID4VP 标准,通过 Google 等可信提供商实现密码学验证的凭证,无需传统 OTP。它涵盖从构建请求、展示系统 UI、解析响应到服务端验证的完整流程,并包含关键安全指南。技能面向客户端集成,服务端验证必须由开发者自行实现。
提供技能文档和代码示例,指导开发者集成邮箱验证:构建符合 OpenID4VP 的 JSON 请求,调用 Credential Manager 的 getCredential(),解析返回的 DigitalCredential 和 SD-JWT 凭证,提取邮箱和用户信息,并指导将原始响应发送到服务端进行密码学验证。包含初始化 Credential Manager、添加依赖、处理非 Gmail 和 Workspace 账户限制等步骤,并提供代码搜索提示以定位集成点。
- Android 开发者在注册流程中希望减少摩擦,跳过邮箱 OTP 验证
- 账号恢复场景,需要安全验证用户邮箱所有权
- 高风险操作(如删除账号、修改密码)的重新认证
- 需要无口令登录,集成 passkey 创建流程的应用
这个 Skill 有哪些优点和局限?
- 使用密码学验证凭证,增强安全性
- 减少用户流程摩擦,提升转化率
- 提供详细的代码示例和请求结构
- 明确说明安全要求和限制
- 仅支持 Android,无跨平台覆盖
- 需要服务端额外实现验证逻辑
- 依赖 Google Play services 和特定版本
- 不支持 Google Workspace 账户,非 Gmail 邮箱需要附加验证
如何安装这个 Skill?
从 GitHub 仓库 android/skills 下载技能文件夹,放置在项目的 .claude/skills/ 或 ~/.claude/skills/ 目录。
如何使用这个 Skill?
在 Android 项目源码中搜索 SignUpScreen 或 'Email address' 等关键词,定位注册或恢复流程。按照 SKILL.md 的指引添加依赖,初始化 CredentialManager,构建 OpenID4VP 请求,调用 getCredential(),解析响应并发送到服务端。