* 토큰의 역할
- 토큰은 UUID(Universally Unique Identifier) 형식의 일반 문자열이거나 JSON 웹 토큰(JWT) 유형일 수 있으며, 일반적으로 로그인 시 사용자가 처음 인증할 때 생성됩니다.
- 제한된 리소스에 대한 모든 요청에서 클라이언트는 쿼리 문자열 또는 Authorization 헤더에 액세스 토큰을 보냅니다.
- 그런 다음 서버는 토큰을 검증하고 유효한 경우 보안 리소스를 클라이언트에 반환합니다.
* 토큰의 장점
1. 토큰은 모든 요청에 대한 자격 증명을 공유하지 않도록 도와줍니다. 자격 증명을 네트워크를 통해 자주 보내는 것은 보안 위험입니다.
2. 사용자 자격 증명을 무효화하지 않고도 의심스러운 활동 중에 토큰을 무효화할 수 있습니다.
3. 토큰은 짧은 수명으로 생성될 수 있습니다.
4. 토큰은 역할, 권한 등 사용자 관련 정보를 저장하는 데 사용할 수 있습니다.
5. 재사용성 - 여러 플랫폼과 도메인에서 실행되는 여러 개의 별도 서버를 사용하여 사용자 인증을 위해 동일한 토큰을 재사용할 수 있습니다.
6. 무상태, 확장이 더 쉽습니다. 토큰에는 사용자를 식별하는 데 필요한 모든 정보가 포함되어 있어 세션 상태가 필요 없습니다. 로드 밸런서를 사용하면 로그인한 서버에 바인딩되는 대신 사용자를 모든 서버로 전달할 수 있습니다.
7. 우리는 이미 CSRF 및 JSESSIONID 토큰 형태의 토큰을 사용했습니다.