FE/Trouble Shooting 2023. 6. 3.

JWT_SESSION_ERROR (feat. next auth)

에러 상황

JWTKeySupport: the key does not support HS512 verify algorithm

The algorithm used for generating your key isn’t listed as supported. You can generate a HS512 key using

jose newkey -s 512 -t oct -a HS512

HS512 알고리즘?

JWT에서 사용하는 12개의 기본 서명 알고리즘 중 하나. 대칭 알고리즘에 속한다. (1개의 secret key를 공유함)

512bit의 digest를 생성하며, 적어도 64 bytes 이상의 secret key를 사용한다.

JWT secret

next_auth의 option 중 하나. […nextauth].ts파일에서 설정 가능하다.

토큰을 해시하고, 쿠키를 사인하고 암호화하여 암호화된 키를 생성하기 위해 사용되는 랜덤의 string. 이때의 string은 반드시 HS512 알고리즘을 따라야 한다.

만약 환경변수에서 NEXTAUTH_SECRET을 선언하였다면, 이 option을 별도로 선언할 필요는 없다.

배포 환경에서는 반드시 secret 옵션 설정, 혹은 NEXTAUTH_SECRET 설정 둘 중 하나는 반드시 이뤄져야 한다!!! 🔥

문제 원인

JWT에서 사용하는 secret 키가 HS512 알고리즘 규칙에 맞지 않는 키이기 때문에 생기는 문제.

문제 해결

기존에 사용하던 NEXTAUTH_SECRET 환경 변수, 혹은 […nextauth].ts의 secret옵션의 값을 HS512 알고리즘 규칙에 맞는 string으로 변경해주면 된다.