2017-03-05 2 views
0

우리의 7 개 마이크로 서비스에서 우리는 Auth0 id_token을 의지합니다. refresh_token (POST myapp.auth0.com/oauth/token)을 교환 할 때 나는 이 아닌 access_token 만 돌려받습니다.Auth0 - refresh_token에서 id_token 가져 오기

id_token에 대해 refresh_token을 Auth0의 API로 어떻게 교환합니까?

답변

0

새로 고침 토큰 부여는 Auth0의 새로운 API 인증 기능에 대한 것입니다. 내가 찾던 끝점은 /delegation입니다.

예 Node.js를 코드 :

const tokenClient = axios.create({ 
    baseURL: `https://${env.AUTH0_DOMAIN}`, 
    headers: { 
    'content-type': 'application/json' 
    } 
}) 

const refreshTokenClient = { 
    getAccessToken: (refreshToken) => { 
    // The official Node.js SDK for Auth0 does not 
    // support this it would seem (it forces passing id_token) 
    return tokenClient.post('/delegation', { 
     client_id: env.AUTH0_CLIENT_ID, 
     target: env.AUTH0_CLIENT_ID, 
     grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer', 
     refresh_token: refreshToken, 
     scope: 'openid', 
     api_type: 'auth0' 
    }).then(r => r.data) 
    } 
} 
1

기술적으로 refresh_token 부여 유형은 OAuth 2.0의 일부이며 id_token은 OAuth 2.0 위에 구축 된 신원 확인 프로토콜 인 OpenID Connect의 일부입니다.

refresh_token 보조 유형 OAuth 2.0을 사용하면 액세스 토큰을 갱신 할 수 있습니다. OpenID Connect는 합당한 이유 때문에 추가 동작을 정의하지 않습니다. id_token은 사용자 인증 이벤트의 결과로 정의되며 사용자 상호 작용이없는 "인증 새로 고침"은 따라서 새 id_token이 될 수 없습니다. 사용자는 잠시 동안 로그 아웃하거나 계정을 삭제했을 수 있습니다.

id_token 새로 고침은 새로 고침 토큰을 자율적으로 사용하지 않고 사용자를 OpenID Connect Provider로 다시 보내서 수행해야합니다.

+0

내가 각도를 들면, 새로 고침 토큰에 대한 데모를받을 수 있습니까? @ 한스 –