2016-12-14 9 views
0

Я использую Auth0 Lock с подключением google-oauth2, и мне нужно получить refresh_token, потому что мне нужно делать вызовы API с серверной стороны, когда пользователь находится в автономном режиме.Auth0 Lock - Google oauth2 не смог получить refresh_token

Я следую их руководству, но он не работает, refreshToken всегда undefined.

Использование http://cdn.auth0.com/js/lock/10.7.2/lock.min.js

this.lock = new Auth0Lock('...', 'xxx.eu.auth0.com', { 
    initialScreen:'login', 
    allowedConnections: ['google-oauth2'], 
    allowSignUp: false, 
    auth: { 
    redirect: false, 
    responseType: "token", 
    params: { 
     'access_type': 'offline', 
     'approval_prompt': 'force', 
    }, 
    }, 
    autoclose: true 
}); 

Пробовал также с params 'approval_prompt': 'force' или 'prompt': 'select_account consent'

инструкции здесь: https://github.com/auth0/rules/blob/master/rules/google-refresh-token.md

ответ

2

Это правило является неправильным. IdP access_tokens доступны через API управления. См. Эту конечную точку: https://auth0.com/docs/api/management/v2#!/Users/get_users_by_id

Необходимо специальное пространство (read:user_idp_tokens).

Это потому, что токены IdP являются чувствительными артефактами, поэтому Auth0 предоставляет дополнительный уровень безопасности для их получения.

Вы можете, конечно, вызывать API из правила, но мы, скорее всего, посоветуем ему, а вместо этого сделаем ваш бэкэнд от имени вашего (front-end) приложения.

+0

Я не уверен, что правильно понимаю. У меня есть приложение SPA, которое я хочу подключить к серверу в узле. В SPA я использую Lock, и вы говорите мне, что мне нужно использовать Management API (на сервере, я полагаю), но я не совсем понимаю, как я смогу получить 'refresh_token'. Является ли Auth0 сохранением refresh_token где-то для меня, который будет восстановлен после? – mtt

+0

refresh_token (Google один, то есть) извлекается после аутентификации и сохраняется как часть профиля пользователя в Auth0. Чтобы получить его, вы используете конечную точку, о которой я писал выше. Вы можете легко это увидеть самостоятельно, войдя в систему, а затем с помощью API-обозревателя. Идентификаторы IdP (Google) (как access_token, так и refresh_token) будут находиться в структуре данных Identities. –

+0

Теперь все ясно, спасибо, Eugenio! И спасибо за отличный продукт, который является Auth0! – mtt

 Смежные вопросы

  • Нет связанных вопросов^_^