Как использовать один JWT токена для аутенфикации на разных сайтах?
Сейчас есть уже работающее веб приложение (SPA) где используется JWT для входа. Сервер отдает токен через куки. Есть второе приложение (другой домен). Нужно сделать так, чтобы можно было переходить из первого во второе по ссылке и оставаться залогиненным. Если бы оба приложения были в одном домене (третьего уровня) то можно было бы использовать куки, но это пока не так. Я подумал что можно было бы сделать так: 1) взять токен из куки первого приложения 2) Сделать Ajax запрос с этим токеном через апи второго приложения, проверить там токен, сохранить где-нибудь в БД, создать уникальную ссылку и отдать ее в ответ на апи запрос. 3) Первое приложение открывает полученную ссылку, сервер второго приложения выставляет по ссылке находит токен в БД и выставляет нужные куки. Меня интересует, насколько пригодно такое решение. И есть ли еще варианты? Я знаю, что обычно используют отдельный сервер для аутенфикации, но в данном случае этот вариант будет рассматриваться в последнюю очередь.
А ведь в тегах и есть весь ответ на вопрос. Выносим Identity Server отдельно и используем его для логина пользователей. Это может быть что угодно: Keycloak, IS4, WSO2, Auth0, .... В зависимости от задачи.
А схема проста: Пользователь заходит в приложение (в любое из). Приложение обращается к IdentityServer со словами "Вася, я не знаю кто это! Разберись, пожалуйста". И если пользователь уже залогинен или если залогинится то приложение его логинит и ставит куки.
Так работает SSO. Какой flow из OAuth/OIDC использовать - по ситуации