JWT
-
Spring Boot - WebSocket & JWT & Spring Security 토큰 인증SpringBoot/WebSocket 2021. 6. 18. 19:16
개발 환경 : Spring Boot, Maven, Web Socket ( Sock JS ), Spring Secuirty , Json Web Token, Vue jwt 인증 헤더 : 'Authorization' JWT 인증 기반의 프로젝트에서의 인증 JWT를 기반으로 하는 제 프로젝트의 인증은 클라이언트에서 보내는 모든 요청에 JWT를 넣어 전송하고, 서버에서 이를 검증해 통신을 주고받게 사용합니다. 문제점 발생 위의 개발환경에서 채팅 기능을 개발하던 중 소켓을 연결할 때 JWT 토큰이 인식되지 않아 401 UNAUTHORIZED 로 정상적으로 동작하지 않는 이슈가 발생했습니다. 왜 발생했을까 ? 왜 그런가? 생각했을 때 떠오른 것은 401이 난다는 건 인증이 제대로 처리가 안됐나? 였습니다. 하지만 다..
-
JsonWebToken - Access Token과 Refresh TokenJsonWebToken 2021. 2. 16. 16:10
이전의 글인 Jwt에 대한 설명에 부가적인 내용을 다룰 포스팅입니다. 매우 주관적인 생각도 들어가 있으니 피드백은 얼마든 환영합니다 ㅜ Access Token에 대해서 이전 글에서 설명했지만, 다시 간략하게 설명하자면 서버에서 사용자의 인증을 위한 정보를 포함한 토큰으로, 사용자는 API 요청할 때마다 HTTP 헤더에 Access Token을 담아 전송하게되고 서버는 이 토큰을 검증해 사용자 인증을 해 API요청에 대한 응답을 사용자에게 전송하게 됩니다. 하지만 이 Access Token은 탈취될 우려가 존재하며, 한번 발급된 토큰에 대해 서버는 강제력을 행사할 수 없다는 단점이 존재하는데요, 이를 보완하기 위해 Access Token의 만료기간을 짧게 설정하고, Refresh Token이란 별도의 토큰..
-
JsonWebToken -Jwt란?JsonWebToken 2021. 2. 16. 15:34
현재 개인적으로 만드는 토이프로젝트에 로그인 기능을 제작할 때, 평소에는 스프링 시큐리티의 폼 로그인으로만 사용했지만 프론트엔드를 Vue를 사용하다보니 개인적으로 연결도 어렵고,, 안되는게 참 많았는데 그렇기에 이렇게된거 아예 토큰기반 인증으로 만들어보기로 했고, Jwt를 알아보는 계기가 되었습니다. 먼저 Jwt의 설명과 동작 방식을 설명하기 전에, 먼저 알아두면 좋을 것들을 작성하겠습니다. 웹/앱 어플리케이션에서 인증의 필요성 사용자 기준에서의 인증은 로그인과 같이 사용자의 도입부분을 가리킬텐데요, 이를 서버 기준에서 본다면 인증이란 모든 API 요청에 대해 접근한 사용자가 올바른 사용자인지를 확인하는 작업 그리고 클라이언트 기준으로 본다면 서버가 사용자를 판단할 근거를 넘겨주어야 한다고 저는 생각합니..