스프링 부트에서 JWT 기반 인증을 구현하자
1부에서는 사용자를 하드코딩하여 실제 데이터베이스 없이 기본 JWT 인증을 구현했습니다.
스프링 부트의 JWT 기반 인증 | 재방문 자바
Nil Madhab ・ 2021년 3월 12일 ・ 중간
이 자습서에서는 MySQL database의 실제 사용자와 통합하고 암호 해싱을 위해 BCryptPasswordEncoder를 사용하여 가입, 로그인 기능을 구현하여 JWT 인증을 확장합니다.
You can find the github code here
1단계: 사용자 모델 만들기
Jwtuser 모델을 만들고 스프링 보안의 UserDetailsService 인터페이스를 다시 구현합니다.
2단계: Spring Security의 UserDetailsService 인터페이스 재구현
UserDetailsService를 다시 구현하고 이전에 하드코딩한 loadUserByUsername 메서드를 재정의합니다.
<script id="gist-ltag"src="https://gist.github.com/nilmadhab/ef32dc4d79dcbcc9962b277847e53759.js"/>
3단계: SecurityConfigurer 업데이트
비밀번호를 암호화하기 위해 SecurityConfigurer 파일의 passwordencoder 메소드를 변경합니다.
@Bean
**public **PasswordEncoder passwordEncoder(){
**return new **BCryptPasswordEncoder();
}
Signup, signIn 방법을 사용할 때 인증을 사용하지 않도록 anteaters도 업데이트해야 합니다.
<script id="gist-ltag"src="https://gist.github.com/nilmadhab/7065f312b68a5b7b1f681eb662d78cb9.js"/>
4단계 가입 API 구현
코드는 자명합니다. 이메일이 아직 존재하지 않는지 확인하고 passwordencoder로 비밀번호를 해시하고 사용자를 DB에 저장합니다.
<script id="gist-ltag"src="https://gist.github.com/nilmadhab/f96bddf6424425dafcb68f36ea7578cd.js"/>
6단계 로그인 구현
<올>
스프링 보안 인증 방법으로 사용자를 인증합니다
컨텍스트에서 인증 설정
DB에서 사용자 가져오기
JWT 생성 및 응답으로 보내기
<script id="gist-ltag"src="https://gist.github.com/nilmadhab/6119207db2b7ae2d9b738863e766c38d.js"/>
7단계: JWT 토큰으로 구성된 Authorization 헤더로 API 테스트
토큰이 만료되면 이 오류가 발생합니다.
토큰이 유효하면 JWT 토큰에서 사용자를 가져오고 인증을 위한 다양한 규칙을 만들 수 있습니다.
<script id="gist-ltag"src="https://gist.github.com/nilmadhab/14cf7f42603e8b1e7b30b7ff8618bbf4.js"/>
다음 단계
<올>
ADMIN, USER, MODERATOR와 같은 다양한 역할 생성
전자상거래 자습서에 통합할 예정입니다
GitHub를 사용하여 소셜 로그인을 사용하고 Vue.js을 사용하여 프런트엔드를 생성합니다.
Reference
이 문제에 관하여(스프링 부트에서 JWT 기반 인증을 구현하자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nilmadhabmondal/let-s-implement-jwt-based-authentication-in-spring-boot-5e10텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)