Spring Security 및 Angular의 JWT 인증
이미지는MasterTux부터Pixabay
소개
JSON Web 토큰(JWT)은 개방 표준(RFC 7519으로 각 분야에서 JSON 대상으로 정보를 안전하게 전송하는 데 사용되는 촘촘하고 자체적으로 포함된 방식을 정의한다.이 정보는 디지털 서명을 거쳤기 때문에 이를 검증하고 신뢰할 수 있다.JWT는 비밀(HMAC 알고리즘 사용)이나 RSA 또는 ECDSA의 공개 키/개인 키를 사용하여 서명할 수 있습니다.
JWT 영패 구조
그 치밀한 형식에서 JSON 웹 영패는 세 부분으로 구성되고 점(.)으로 구분된다.다음과 같습니다.
xxxxx.YYYY.zzzzz
제목
헤더는 일반적으로 두 부분으로 구성된다. 영패의 유형, 즉 JWT와 사용 중인 서명 알고리즘, 예를 들어 HMAC SHA256 또는 RSA이다.
예:
{
"alg": "HS256",
"typ": "JWT"
}
그리고 이 JSON에 대해 Base64Url 인코딩을 해서 JWT의 첫 번째 부분을 형성합니다.유효 하중
영패의 두 번째 부분은 유효 부하로 성명이 포함되어 있다.선언은 엔티티 (일반적으로 사용자) 와 추가 데이터에 대한 선언입니다.세 가지 유형의 채권이 있는데 그것이 바로 등록채권, 공공채권과 개인채권이다.
서명
서명 부분을 만들려면 인코딩된 헤더, 인코딩된 유효 부하, 비밀, 헤더에 지정된 알고리즘을 가져와 서명해야 합니다.자세한 워크플로우 및 지침 참조https://jwt.io/introduction/
기술
실시
많은 개원 JWT 구현 가능all languages.이 블로그에서 우리는 이 블로그에서 자바jjwt 라이브러리를 사용했다.
@PostMapping(value = {"/authenticate","/login"})
public Object loginUser(@RequestParam String username, @RequestParam String password)
{
Authentication authentication=authenticationManager.authenticate( new UsernamePasswordAuthenticationToken(username, password));
return mapUserAndReturnJwtToken(authentication,true);
}
방법publicvoidconfigure(HttpSecurity http)는 모든 요청의 URL 로그인을 허용합니다. 인증은 UserController 클래스를 통해 수동으로 이루어지기 때문입니다.
이 필터를 작동하려면 SecurityConfig에서 UsernamePasswordAuthenticationFilter에 추가하기 전에
http.addFilterBefore(jwtRequestFilter,UsernamePasswordAuthenticationFilter.class);
테스트
$ npm install
$ npm run start --watch
결론
코드 업로드 Github 참고, Happy 인코딩:)
Reference
이 문제에 관하여(Spring Security 및 Angular의 JWT 인증), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pavankjadda/jwt-authentication-in-spring-security-and-angular-jel텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)