Как хранить аутентификацию для виджета JavaScript на нескольких сайтах? - PullRequest
0 голосов
/ 06 мая 2018

Я написал небольшое приложение-виджет, которое взаимодействует с API для создания учетной записи и входа в систему. Это необходимо встроить в страницу клиента, чтобы добавить нашу функциональность.

Это прекрасно работает, и я могу хранить учетные данные для API в локальном хранилище или в файлах cookie.

Что я не знаю, как сделать, чтобы наши конечные пользователи входили в систему на нескольких сайтах?

Идея состоит в том, что они сохранят свое аутентифицированное состояние, чтобы наш сервис мог продолжать работать там, где с ним сталкиваются. У кого-нибудь есть опыт, как сделать что-то подобное?

1 Ответ

0 голосов
/ 07 мая 2018

Почему cookiemonter не работает?

Cookies и LocalStorage не предназначены для использования в разных доменах, поэтому плагин или веб-сайт, использующие ваш виджет, должны будут (при первом входе пользователя) войти в систему. Учетные данные не могут (и не должны) отображаться в междоменном домене.

Как использовать один и тот же междоменный файл Cookies / LocalStorage

В какой-то момент пользователю будет предложено пройти аутентификацию в вашем веб-API, например, с именем пользователя и паролем. Возвращаемый токен (учетные данные) может быть установлен на один и тот же токен на всех сайтах, которые использует этот человек.

Скажите, что пользователь x входит и запрашивает у вашего API токен. Ваш API возвращает токен token123. Пользователь x теперь открывает новое окно и снова запрашивает токен с тем же именем пользователя и паролем. Теперь ваш API увидит, что x уже имеет сеанс, и снова вернет token123.

Когда пользователь y приходит и запрашивает токен с другим именем пользователя и паролем, API возвращает token345 и сохраняет его на стороне клиента.

Токены будут храниться в LocalStorage или в виде Cookie, чтобы клиент мог проверить, есть ли у пользователя токен или ему нужен новый из API.

Что касается безопасности

Я бы настоятельно рекомендовал вам использовать хорошо используемый и определенный метод аутентификации пользователей и отправлять токены. Лучшим способом было бы реализовать такие методы, как Microsoft Azure Active Directory или Google Sign-In (существует множество хорошо используемых технологий). Хранение токенов на вашем собственном сервере - это не то, чем вы хотите заниматься. По крайней мере, не пароли для пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...