技能 auth-implementation-patterns
🔐

auth-implementation-patterns

安全

안전한 인증 시스템 구현하기

也可从以下获取: wshobson

검증된 인증 및 권한 부여 패턴을 배워 기존 방식을 재발명하지 않고도 애플리케이션에 안전한 액세스 제어를 구축하세요.

支持: Claude Codex Code(CC)
🥉 75 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“auth-implementation-patterns”。 Express 에서 JWT 인증을 어떻게 구현하나요?

预期结果:

완전한 JWT 구현에는 다음이 포함됩니다: 1) 환경 변수의 secrets 를 사용하여 jwt.sign() 로 토큰 생성, 2) Bearer 토큰을 검증하는 authenticate 미들웨어 생성, 3) 짧은 수명의 액세스 토큰 (15 분) 과 더 긴 리프레시 토큰 (7 일) 사용, 4) 리프레시 토큰을 해시하여 데이터베이스에 저장. 전체 코드는 implementation-playbook.md 패턴 1 을 참조하세요.

正在使用“auth-implementation-patterns”。 세션 기반과 토큰 기반 인증의 차이점은 무엇인가요?

预期结果:

세션 기반: 서버가 상태를 저장, 쿠키에 세션 ID 저장, 간단하지만 스티키 세션이 필요함. 토큰 기반 (JWT): 무상태, 자체 포함 클레임, 수평 확장 가능하지만 개별 토큰을 쉽게 취소할 수 없음. 전통적인 앱에는 세션을, API 및 마이크로서비스에는 JWT 를 선택하세요.

正在使用“auth-implementation-patterns”。 역할 기반 권한 부여를 어떻게 구현하나요?

预期结果:

enum 으로 역할 정의 (USER, MODERATOR, ADMIN), 역할 계층 매핑 생성, 사용자 역할을 허용된 역할과 비교하는 requireRole() 미들웨어 구축, 보호된 라우트에 미들웨어 적용. 예시: app.delete('/users/:id', authenticate, requireRole('ADMIN'), handler)

安全审计

安全
v1 • 2/24/2026

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.

2
已扫描文件
661
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
100
规范符合性

你能构建什么

처음부터 JWT 인증 구축하기

액세스 토큰, 리프레시 토큰 및 적절한 secret 관리를 포함한 완전한 토큰 기반 인증 구현

OAuth2 소셜 로그인 추가하기

기존 애플리케이션에 Google 및 GitHub OAuth2 인증 통합

권한 부여 모델 설계하기

애플리케이션 리소스를 위한 RBAC 또는 권한 기반 액세스 제어 시스템 생성

试试这些提示

기본 JWT 설정
토큰 생성 및 검증 미들웨어를 포함한 Express 와 Node.js 에서 JWT 인증을 구현하는 방법을 보여주세요
리프레시 토큰 플로우
리프레시 토큰을 데이터베이스에 안전하게 저장하고 새로운 액세스 토큰을 발급하는 리프레시 토큰 플로우를 생성하세요
OAuth2 통합
인증 후 JWT 토큰 생성과 함께 Passport.js 를 사용하여 Google OAuth2 로그인을 구현하세요
RBAC 권한 부여
admin, moderator, user 역할을 포함하고 권한 확인을 위한 미들웨어를 갖춘 역할 기반 액세스 제어 시스템을 설계하세요

最佳实践

  • secret 에는 항상 환경 변수 사용 (JWT_SECRET, SESSION_SECRET) - 자격 증명을 하드코딩하지 마세요
  • 더 나은 보안을 위해 짧은 수명의 액세스 토큰 (15-30 분) 과 별도의 리프레시 토큰 사용
  • 리프레시 토큰을 해시하여 데이터베이스에 저장하고 사용 시 토큰 로테이션 구현

避免

  • localStorage 에 JWT 저장하면 토큰이 XSS 공격에 노출됨 - 대신 httpOnly 쿠키 사용
  • 토큰 만료 검증 안 함으로 만료된 토큰이 무제한 사용 가능
  • 클라이언트 측만 권한 부여 검사는 우회 가능 - 항상 서버 측에서 검증

常见问题

세션 기반과 토큰 기반 인증 중 언제 무엇을 사용해야 하나요?
간단한 로그아웃과 CSRF 보호가 필요한 전통적인 서버 렌더링 앱에는 세션을 사용하세요. 무상태 인증과 도메인 간 요청이 필요한 SPA, 모바일 앱 및 마이크로서비스에는 토큰 (JWT) 을 사용하세요.
JWT secrets 를 안전하게 저장하는 방법은?
소스를 코드에 secrets 를 절대 하드코딩하지 마세요. 환경 변수 (process.env.JWT_SECRET) 를 사용하고 런타임에 .env 파일에서 로드하세요. .env 가 .gitignore 에 포함되어 있고 프로덕션에서는 secrets 가 안전한 소스에서 주입되도록 하세요.
인증과 권한 부여의 차이점은 무엇인가요?
인증 (AuthN) 은 사용자가 누구인지 확인합니다 (자격 증명으로 로그인). 권한 부여 (AuthZ) 는 사용자가 무엇을 할 수 있는지 결정합니다 (권한, 역할). 둘 다 액세스 제어에서 필수적이지만 서로 다른 목적을 가집니다.
리프레시 토큰을 안전하게 구현하는 방법은?
리프레시 토큰은 무작위 UUID 로 생성하고, 해시된 버전을 데이터베이스에 저장하며, 만료 기한 (7-30 일) 을 설정하고, 사용할 때마다 로테이션 (매번 새 리프레시 발급) 을 구현하며, 로그아웃 또는 보안 이벤트를 위해 취소 기능을 제공하세요.
JWT 토큰은 취소할 수 있나요?
JWT 는 설계상 무상태입니다. 취소하려면: Redis/데이터베이스에서 토큰 차단 목록 사용, 토큰이 자연스럽게 만료되도록 짧은 만료 기한 구현, 또는 이전 토큰 쌍을 무효화하기 위해 리프레시 토큰 로테이션 사용.
비밀번호 저장 처리에 가장 좋은 방법은?
비밀번호는 항상 높은 작업 계수 (bcrypt cost 10-12) 로 bcrypt 또는 argon2 를 사용하여 해시하세요. 일반 텍스트 비밀번호를 절대 저장하지 마세요. bcrypt 가 제공하는 salt 를 자동으로 사용하세요. bcrypt.compare() 로 검증하세요.