본문으로 건너뛰기

인증 및 액세스 토큰

Shakr API는 OAuth 2.0을 사용하여 인증을 진행합니다. OAuth 2.0의 여러 인증 방식 중에서도 서비스 대 서비스의 인증을 하도록 도와주는 Client Credentials Grant 방식을 사용하고 있으며, 이 방식에 대해 더 알아보고 싶으시면 다음 사이트를 참고해주세요.

Client Credentials Grant

Client Credentials Grant를 사용하여 인증을 진행할 때는, grant_type 파라미터를 client_credentials로 지정하고, client_idclient_secret에 각각 발급받은 클라이언트 정보를 입력합니다. HTTP Response로 access_token이 반환되며, 이를 보관하여 사용할 수 있습니다.

OAuth 2.0 라이브러리

대부분의 프로그래밍 언어에는 OAuth 2.0를 지원하는 라이브러리가 있고, 이러한 라이브러리의 대부분이 Client Credentials Grant 방식을 지원합니다.

대부분의 OAuth 2.0 라이브러리들은 Client Credentials Grant 방식을 지원합니다. Shakr API와 통신할 때 사용할 수 있는 OAuth 2.0 라이브러리 몇 가지를 소개해드립니다.

다음은 여러 언어의 OAuth 2.0 라이브러리로 액세스 토큰을 발급받는 코드입니다.

const { ClientCredentials } = require('simple-oauth2');

const client = new ClientCredentials({
client: {
id: 'SHAKR_API_CLIENT_ID',
secret: 'SHAKR_API_CLIENT_SECRET'
},
auth: { tokenHost: 'https://api.shakr.com' }
});

try {
const { token } = await client.getToken({});
} catch (error) {
console.log('Error fetching access token', error.message);
}

액세스 토큰의 종류

서버 액세스 토큰

별도의 스코프 지정 없이 grant_type, client_id, client_secret 파라미터로만 가져온 액세스 토큰은 서버 액세스 토큰(server access token)이라고 지칭하며, 이 토큰은 여러분의 애플리케이션이 제작한 비디오를 모두 접근할 수 있고, 새로운 비디오를 생성할 권한이 있습니다. 넓은 권한을 보유하고 있는만큼 이 토큰은 서버에서만 보관 및 사용이 이루어져야 하고, 클라이언트에 노출하지 않는 것을 강력히 권장합니다.

서버 액세스 토큰을 발급받는 방법에 대해 알아보시려면 서버 액세스 토큰 발급받기 페이지를 참고해보세요.

액세스 토큰의 만료

현재 토큰에는 별도의 만료 시간이 없지만, 추후 API 버전에서는 만료 시간이 추가될 예정입니다. 가능하면 토큰의 갱신을 지원하는 라이브러리를 사용해주세요.

스코프드 액세스 토큰

서버 액세스 토큰과 비교하여 제한된 범위의 권한을 가지고 있는 토큰을 스코프드 액세스 토큰(scoped access token)이라고 지칭하며, 이 토큰은 Editor SDK를 통해서 비디오를 제작할 때와 같이 클라이언트 (브라우저 등) 내에서 토큰이 필요할 때 활용할 수 있습니다.

예를 들면, Video Editor SDK로 비디오를 제작할 때 스코프드 액세스 토큰을 발급받아 사용하게 됩니다.