💪 Today I Learned

Brunch API JWT 적용

홈 화면 조회 API를 제외한 모든 API에 올바르지 못한 토큰으로 요청이 올 경우 전부 막아줬다. 그리고 기존 코드에서 에 해당하는 userId 를 쿼리문에 직접 대입시켜 작성한 것을 JWT를 복호화하여 로그인한 사용자의 userId 로 수정했다. 이해하기 어렵게 설명한 것 같아 예시를 더하겠다.
로그인한 사용자()의 userId 가 1이라고 가정해보자. 기존에는 특정한 게시글에 좋아요 눌렀는지의 여부를 보여줄 때 쿼리에 를 명시적으로 넣어줬다.

SELECT likeStatus FROM LikePost WHERE userId = 1; 

userId 를 JWT payload 부분에 넣어 토큰을 발급했고, 이것을 다시 복호화하여 사용했다. getDataByJWToken 함수에서 복호화한 값을 리턴하게끔 하여 그것을 쿼리에 전달했다.

# php
$myIdx = getDataByJWToken($jwt, JWT_SECRET_KEY);
$query = "SELECT likeStatus FROM LikePost WHERE userId = $myIdx;"

이로써 항상 내가 로그인했다고 가정한 상태에서 벗어나 로그인한 사용자에 따라 다른 값을 보여줄 수 있다.

🏃 한마디

단순히 myIdx 변수를 쿼리에 전달하는 것 외에 수정할 부분이 없을거라 생각했는데 생각보다 많이 바꿔야했다. 처음부터 이 부분을 염두해두고 쿼리를 작성했다면 덜 수고스러웠을 것 같다.