下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“auth-implementation-patterns”。 如何在Express中实现JWT认证?
预期结果:
完整的JWT实现包括:1)使用环境变量中的密钥通过jwt.sign()生成令牌,2)创建验证Bearer令牌的认证中间件,3)使用短寿命访问令牌(15分钟)和较长刷新令牌(7天),4)在数据库中哈希存储刷新令牌。详见implementation-playbook.md模式1的完整代码。
正在使用“auth-implementation-patterns”。 会话认证和基于令牌的认证有什么区别?
预期结果:
基于会话:服务器存储状态,会话ID在Cookie中,简单但需要粘性会话。基于令牌(JWT):无状态,自包含声明,可水平扩展,但无法轻易撤销单个令牌。传统应用选择会话,API和微服务选择JWT。
正在使用“auth-implementation-patterns”。 如何实现基于角色的授权?
预期结果:
在枚举中定义角色(USER、MODERATOR、ADMIN),创建角色层级映射,构建requireRole()中间件检查用户角色是否在允许的角色中,将中间件应用于受保护路由。示例:app.delete('/users/:id', authenticate, requireRole('ADMIN'), handler)
安全审计
安全Educational documentation skill containing authentication and authorization code patterns. All 67 static findings are false positives: backticks are markdown code fences, environment variable access demonstrates proper secret handling, and weak crypto mentions are in cautionary context. No actual security risks present.
质量评分
你能构建什么
从头构建JWT认证
实现完整的基于令牌的认证,包括访问令牌、刷新令牌和适当的密钥管理
添加OAuth2社交登录
将Google和GitHub OAuth2认证集成到现有应用中
设计授权模型
为应用资源创建RBAC或基于权限的访问控制系统
试试这些提示
展示如何使用Express在Node.js中实现JWT认证,包括令牌生成和验证中间件
创建安全的刷新令牌流程,将刷新令牌存储在数据库中并颁发新的访问令牌
使用Passport.js实现Google OAuth2登录,认证后生成JWT令牌
设计具有管理员、版主和用户角色的基于角色的访问控制系统,包括权限检查中间件
最佳实践
- 始终使用环境变量存储密钥(JWT_SECRET、SESSION_SECRET),切勿硬编码凭据
- 使用短寿命访问令牌(15-30分钟)和单独的刷新令牌以提高安全性
- 在数据库中哈希存储刷新令牌,并在使用时实施令牌轮换
避免
- 将JWT存储在localStorage中会使令牌暴露于XSS攻击 - 改为使用httpOnlyCookie
- 不验证令牌过期时间会导致过期令牌被无限期使用
- 仅在客户端进行授权检查可以被绕过 - 务必在服务端验证
常见问题
什么时候应该使用基于会话的认证 vs 基于令牌的认证?
如何安全地存储JWT密钥?
认证和授权有什么区别?
如何安全地实现刷新令牌?
JWT令牌可以被撤销吗?
处理密码存储的最佳方式是什么?
开发者详情
作者
sickn33许可证
MIT
仓库
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/auth-implementation-patterns引用
main
文件结构