[Spring_gradle]
UserDetailsServiceImpl와 토큰 기반 인증의 차이점
펭귀니
2024. 11. 14. 18:14
UserDetailsServiceImpl와 토큰 기반 인증의 차이점
- UserDetailsServiceImpl의 역할
- UserDetailsServiceImpl은 Spring Security의 인증 프로세스에서 사용자 정보를 로드하여, 인증에 필요한 정보(사용자 ID, 비밀번호, 권한 등)를 포함한 객체(UserDetails)를 반환합니다.
- 이 정보는 Spring Security가 사용자 인증을 수행할 때 참조되며, 실제 로그인 시점에서 세션 기반으로 관리되거나, 인증된 정보를 기반으로 권한을 확인하는 데 사용됩니다.
- 토큰의 역할
- 토큰은 클라이언트와 서버 간 인증 상태를 유지하기 위한 자격 증명입니다. JWT와 같은 토큰을 사용하면, 클라이언트가 로그인한 후 토큰을 받아 이후 요청마다 해당 토큰을 포함하여 서버에 인증 요청을 할 수 있습니다.
- 토큰 기반 인증에서는 사용자가 매번 로그인하지 않아도 토큰을 통해 인증 상태를 유지할 수 있으며, 이 토큰이 유효한지 검증하는 과정에서 권한을 확인하게 됩니다.
- 토큰 기반 인증과 UserDetailsService의 관계
- 토큰 기반 인증에서도 UserDetailsServiceImpl이 필요할 수 있습니다. 토큰을 검증하는 과정에서, 해당 토큰의 사용자 정보를 불러오기 위해 UserDetailsServiceImpl을 사용할 수 있기 때문입니다.
- 예를 들어, 토큰에서 사용자 이름을 추출한 후 UserDetailsServiceImpl의 loadUserByUsername 메서드를 호출하여 해당 사용자에 대한 인증 및 권한 정보를 로드하고, 이를 통해 토큰의 유효성을 검증할 수 있습니다.