Я пытаюсь совершать аутентифицированные звонки в GitHub, используя Auth0 в качестве посредника.
Я следую руководству по https://auth0.com/docs/connections/calling-an-external-idp-api,, но когда дело доходит до шага 2. Получая user_id, я сталкиваюсь с проблемой с конечной точкой / userinfo.
const rp = require('request-promise')
const auth0_options = {
method: 'POST',
url: 'https://MY_DEV_ID/oauth/token',
headers: {'content-type': 'application/x-www-form-urlencoded'},
form: {
grant_type: 'client_credentials',
client_id: 'MY_CLIENT_ID',
client_secret: 'MY_CLIENT_SECRET',
audience: 'https://MY_DEV_ID/api/v2/'
}
};
const auth0_result = JSON.parse(await rp(auth0_options));
const access_token_one = auth0_result.access_token;
Затем я пытаюсь вызвать конечную точку userinfo, как описано на https://auth0.com/docs/api/authentication#user-profile
const userinfo_options = { method: 'GET',
url: 'https://MY_DEV_ID/userinfo',
headers: { 'Authorization' : `Bearer ${access_token_one}`}
};
const userinfo_result = JSON.parse(await rp(userinfo_options));
, но эта проблемане работает, он возвращает пустой объект, который, как я полагаю, вызван тем, что он не авторизован.
Я просмотрел много предыдущих вопросов о / userinfo здесь на SO, но обнаружил, что во всех случаях я обнаружил проблемуя что-то уже защитил (токен, аудитория и т. д.)
Редактировать: конфигурация openid для API auth0, который я пытаюсь использовать:
scopes_supported": [
"openid",
"profile",
"offline_access",
"name",
"given_name",
"family_name",
"nickname",
"email",
"email_verified",
"picture",
"created_at",
"identities",
"phone",
"address"
],
"response_types_supported": [
"code",
"token",
"id_token",
"code token",
"code id_token",
"token id_token",
"code token id_token"
],