У меня есть следующий поток в моем приложении:
SPA => Generate JWT Token in Auth0.com => SPA Call MyAPI => MyAPI call Auth0.com Userinfo endpoint
Итак, я получаю токен доступа от своего SPA и мне нужно вызвать auth0.com для получения информации о пользователе, но токен на предъявителя является обязательным. Итак, я подумал о трех вариантах:
- Использовать тот же токен, который я получил от spa ( реле токена, у пружинной защиты есть эта опция - https://cloud.spring.io/spring-cloud-security/2.1.x/single/spring-cloud-security.html#_token_relay ).
- Создайте новый токен с MyAPI, действующим от имени пользователя, вошедшего в spa, и задайте в теме имя пользователя.
- Просто сгенерируйте новый токен с обычным потоком учетных данных клиента, и не волнуйтесь о пользователе, который запускает поток в spa. В данном случае предметное утверждение в MyApi, а не в пользователе.
Я не вижу никаких преимуществ при использовании пунктов 2 и 3, просто больше сетевых надежд, в моем случае Auth0.com не выглядит Это. Но я хотел бы поделиться некоторыми мнениями о передовой практике, за и против.