> ## Documentation Index
> Fetch the complete documentation index at: https://kxp.wyhil.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Login

> 로그인하는 방법을 알아봅니다.

## 로그인 기능 개요

게시판에서 글을 작성하거나 수정하기 위해서는 사용자의 신원을 확인하는 **로그인** 과정이 필수적입니다. 바이브 코딩을 통해 보안 표준을 준수하면서도 간편하게 로그인 기능을 구현하고, 게시판 서비스와 통합할 수 있습니다.

***

## 단계별 로그인 구현

### 1. 보안 설정 및 인증 방식 정의

AI에게 어떤 방식의 로그인을 원하는지 설명합니다. 최근 표준인 Spring Security와 JWT(JSON Web Token) 조합을 추천합니다.

> **Prompt:** "우리 게시판에 로그인 기능을 추가해줘. Spring Security를 사용하고, 보안을 위해 JWT 토큰 인증 방식을 적용하고 싶어. 사용자 정보에는 아이디, 비밀번호, 이메일이 포함되도록 해줘."

### 2. 인증 로직 생성 (Logic Create)

AI는 `User` 엔티티와 인증을 담당할 `AuthController`, 그리고 보안 설정을 담은 `SecurityConfig` 파일을 생성합니다.

* **Tools 활용**: AI가 `create_new_file`을 통해 로그인에 필요한 필터와 핸들러를 자동으로 구성합니다.

### 3. 게시판 로직과 통합 (Logic Update)

기존에 만든 게시판 로직을 업데이트하여, 로그인한 사용자만 글을 쓸 수 있도록 권한을 제한합니다.

> **Prompt:** "게시글 작성(`post`)과 수정(`update`) 로직을 업데이트해줘. 이제는 로그인을 해서 JWT 토큰이 있는 사용자만 접근할 수 있게 하고, 본인이 쓴 글만 수정할 수 있도록 검증 로직을 추가해줘."

***

## 활용 팁: 소셜 로그인 연동

바이브 코딩을 이용하면 복잡한 OAuth2 설정도 대화만으로 해결할 수 있습니다.

> **Prompt:** "구글 계정으로도 로그인할 수 있게 기능을 확장해줘. 구글 로그인이 성공하면 우리 시스템의 사용자 정보로 자동 등록되게 해줘."

***

## 💡 로그인 구현 시 주의사항

* **비밀번호 암호화**: AI가 로직을 생성할 때 반드시 `BCryptPasswordEncoder` 등을 사용하여 비밀번호가 암호화되어 저장되는지 확인하세요.
* **로그아웃 처리**: 클라이언트 측에서 토큰을 만료시키는 방법이나 서버 측 블랙리스트 방식 중 하나를 택해 로그아웃 로직도 함께 요청하는 것이 좋습니다.
* **에러 메시지**: "아이디가 존재하지 않습니다"와 같이 구체적인 에러보다는 "아이디 또는 비밀번호가 잘못되었습니다"와 같은 일반적인 메시지를 사용하여 보안을 강화하세요.
