Извлечение изображения профиля из Azure с использованием токена Passport - PullRequest
0 голосов
/ 17 октября 2019

Используя это: https://github.com/auth0/passport-azure-ad-oauth2

Обратный вызов:

const callback = async (accessToken, _: string, params, profile, done) => {
  const waadProfile: IAzureUser = jwt.decode(
    params.id_token,
    process.env.AZURE_CLIENT_SECRET
  );

  const photo = getPhoto(accessToken);
...

Я хочу получить изображение профиля :

GET graph.microsoft.com/v1.0/me/photo/$value

Я получаю:

{
    "error": {
        "code": "InvalidAuthenticationToken",
        "message": "Access token validation failure. Invalid audience.",
        "innerError": {
            "request-id": "95e2deac-969c-4e4a-b577-e33376bb66d4",
            "date": "2019-10-17T08:33:01"
        }
    }
}

Знак неверен. Пробовал оба accessToken и params.id_token. Не работает. Какой токен я должен использовать?

1 Ответ

1 голос
/ 31 октября 2019

Вы либо пропустили, либо передали неправильное значение resource. Ресурс должен быть https://graph.microsoft.com или 00000003-0000-0000-c000-000000000000.

passport.use(new AzureAdOAuth2Strategy({
  clientID: '{YOUR_CLIENT_ID}',
  clientSecret: '{YOUR_CLIENT_SECRET}',
  callbackURL: '{YOUR_CALLBACK_URL}',
  resource: '00000003-0000-0000-c000-000000000000',
  useCommonEndpoint: true
},
...