인증 기반 API를 호출하기 위해 JWT 인증 토큰을 생성하여 요청 헤더에 삽입해야 합니다.

JWT 토큰을 생성할 때,

  1. expiration을 충분히 길게 설정하세요. (아래 예시에서는 3년의 유효 기간으로 설정되어 있습니다.)
  2. 발급받은 accessKey를 JWT claim에 세팅하세요.
  3. 그리고 발급받은 secretKey(base64EncodedSecretKey) 를 이용하여 sign한 JWT token을 생성하세요.
  • JWT 관련 라이브러리에 따라 base64 인코딩하지 않은 plain secretKey를 세팅해야 하는 경우도 있습니다.

JWT 인증 토큰은 HTTP 요청 헤더에 Authorization: Bearer {JWT_TOKEN} 형식으로 세팅합니다.

import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtAuthorizationGeneratorSample {
    public static void main(String[] args) {

        String algorithm = "HS256";
        String base64EncodedSecretKey = "{secretKey}";
        long expiration = System.currentTimeMillis() + 3 * 365 * 24 * (60 * 60 * 1000);
        String accessKey = "{accessKey}";

        JwtBuilder builder = Jwts.builder()
            .signWith(SignatureAlgorithm.forName(algorithm), base64EncodedSecretKey)
            .setExpiration(new Date(expiration))
            .setIssuedAt(new Date())
            .claim("accessKey", accessKey);
      
        String jwt = builder.compact();
        System.out.printf("jwt: " + jwt);
    }
}

다음은 curl로 호출하는 경우의 예시입니다.

curl \
  --location --request GET 'https://papi.shoplive.cloud/v2/{accessKey}/video?sortAscending=false&page=1&count=20' \
  --header 'Authorization: Bearer {JWT_TOKEN}'