У меня есть библиотека angular-oauth2-oidc
, настроенная для использования с Auth0. Однако Auth0 продолжает присылать мне очень короткий токен доступа, например mSNhEfdDHK6t-kT5QweRtgec-FPGAsdfEw9
вместо полного токена JWT. Вот как воспроизвести проблему:
- Создайте образец «API» в Auth0, к которому вы хотите получить доступ как к ресурсу.
- Создайте приложение SPA, настроенное для неявного потока в Auth0.
- Следуйте инструкциям по быстрому запуску из
angular-oauth2-oidc
или клонируйте мой образец репозитория. Настройте его следующим образом:
export const authConfig: AuthConfig = { issuer: 'https://your-tenant-name.eu.auth0.com/', clientId: 'your-spa-client-id-here', redirectUri: window.location.origin + '/index.html', scope: 'openid profile email', };
Запустите вызов
initImplicitFlow()
, нажав кнопку входа в систему в своем приложении.
Когда вы это сделаете:
- Результат: полный JWT IdToken, но короткий AccessToken.
- Ожидается: оба токена полны токенов JWT.
В этой ветке Форумы сообщества Auth0, объясняющие, почему вы получаете такую «непрозрачную строку» для токена доступа. В верхнем принятом ответе упоминаются вещи, которые я уже делаю (sope
, как я, звоню /authorize
и т. Д.). Однако ниже в этом потоке упоминается установка audience
при вызове /authorize
- это решение, что в любом случае кажется хорошим решением.
Но как отправить audience
? Для типа AuthConfig
такого свойства нет установите его, и глядя на initImplicitFlow()
источник, он просто прямо меняет location.href
, так что там тоже нет перехвата.