관리 API 키에서 Kontent 프로젝트 ID 가져오기

8008 단어 jwtapiwebdevdecode
Management API Key 에서 Kontent 프로젝트 ID를 구문 분석할 수 있습니다. 즉, 더 이상 Kontent 도구에 대해 두 개의 키를 요청할 필요가 없습니다.

Management API을 사용하여 Kontent 도구를 개발하고 프로젝트 ID와 관리 API 키를 모두 요구합니까? 다음 행은 UX를 개선하고 코드를 정리하는 데 도움이 됩니다.

관리 API 키는 페이로드(서명이 있는 헤더 사이)를 포함하는 JWT token일 뿐입니다. 따라서 JWT.io 을 사용하여 디코딩할 수 있으며 페이로드로 다음을 볼 수 있습니다.

{
    "jti": "b6a9ee86bfdc41c89f20048c3baaba04",
    "iat": "1612535158",
    "exp": "1958135158",
    "project_id": "06c2b8951700013e5f3160283aff1100",
    "ver": "2.1.0",
    "uid": "usr_0vMrpCH2TkOK5oK3y3bKNS",
    "aud": "manage.kenticocloud.com"
}

project_id는 한 번의 수정으로 프로젝트를 식별하는 데 사용할 수 있습니다. 존중을 위해 적절한 위치에 대시를 추가해야 합니다GUID format.

이 모든 작업을 수행하려면 코드가 이와 같이 보이거나(또는 다른 언어 대안) jwt-decode 과 같은 라이브러리를 사용하면 됩니다. 그러나 그들이하는 일을 아는 것은 항상 좋습니다.

const managementApiKey = "ew0KICAiYWxnIjogIkhTMjU2IiwNCiAgInR5cCI6ICJKV1QiDQp9.ew0KICAianRpIjogImI2YTllZTg2YmZkYzQxYzg5ZjIwMDQ4YzNiYWFiYTA0IiwNCiAgImlhdCI6ICIxNjEyNTM1MTU4IiwNCiAgImV4cCI6ICIxOTU4MTM1MTU4IiwNCiAgInByb2plY3RfaWQiOiAiMDZjMmI4OTUxNzAwMDEzZTVmMzE2MDI4M2FmZjExMDAiLA0KICAidmVyIjogIjIuMS4wIiwNCiAgInVpZCI6ICJ1c3JfMHZNcnBDSDJUa09LNW9LM3kzYktOUyIsDQogICJhdWQiOiAibWFuYWdlLmtlbnRpY29jbG91ZC5jb20iDQp9.aEqGajw7e9m13lnID0z9PBCL0MytqYlvoYg_rwPfEJo";

const payloadBase64 = managementApiKey.split('.')[1];
const payloadBase64Cleared = payloadBase64.replace(/-/g, '+').replace(/_/g, '/');
const jsonPayload = decodeURIComponent(
    atob(payloadBase64Cleared)
    .split('')
    .map((c) => 
        ('%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
    )
    .join('')
);

const payloadObject = JSON.parse(jsonPayload);

const projectIdWithoutDashes = payloadObject.project_id;

const projectId = 
    `${projectIdWithoutDashes.substr(0, 8)}-\
${projectIdWithoutDashes.substr(8, 4)}-\
${projectIdWithoutDashes.substr(12,4 )}-\
${projectIdWithoutDashes.substr(16, 4)}-\
${projectIdWithoutDashes.substr(20)}`

console.log(projectId);


If you want to play with it - check out this Codepen.



...그리고 물론, 저는 표시된 API 키를 무효화했습니다 🤞

좋은 웹페이지 즐겨찾기