Как передать акцесс токен на вдругую вкладку?
Здравствуйте, друзья.
В приложении имется кнопка, нажав которую, генерируется токен, и с этим токеном пользователя редиректит на другую страницу (домен), в другое приложение. Ссылка, на которую пользователь редиректится имеет формат https://site.com/login?token=xxxx. Приложение, на которое проиозошло редирект, считывает этот токен из URL параметра и авторизовывает пользователя.
Проблема в том, что таким образом, токен виден пользователю, и так понимаю, некоторые знающие хакеры смогут перехаватить без больших трудностей, заполучить токен себе и тоже авторизоваться.
Как-то можно передать токен так, чтобы он явно не был виден юзеру, или хотя бы более безопасно это сделать?
Заранее спасибо за участие в решении!
Наверное стоит добавить, что я могу редактировать как первое так и второе приложения)
Дополнительно:
Можно ограничить срок годности токена или вовсе сделать его одноразовым.
Чтобы не передавать его в GET, создать форму и отправлять Post.
Либо в заголовках.
Это нормально что имея этот токен юзер может делать над собой какие то действия. Просто нужно создать правильные права доступа у токена, чтобы юзер мог ограниченно навредить себе по этому токену.
Второй вариант это шифровать токен на стороне сервера через JWE, и расшифровывать на втором сервере.
Третий вариант это не передавать токены вообще, а захардкодить их на обоих приложениях.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для передачи access token на другую вкладку веб-браузера, можно воспользоваться различными методами. Один из способов - использовать localStorage или sessionStorage.
Пример использования localStorage:
// Сохраняем access token в localStorage localStorage.setItem('accessToken', 'YOUR_ACCESS_TOKEN_HERE'); // Получаем access token из localStorage на другой вкладке var accessToken = localStorage.getItem('accessToken');
Пример использования sessionStorage:
// Сохраняем access token в sessionStorage sessionStorage.setItem('accessToken', 'YOUR_ACCESS_TOKEN_HERE'); // Получаем access token из sessionStorage на другой вкладке var accessToken = sessionStorage.getItem('accessToken');
Таким образом, вы можете передать access token между вкладками, сохраняя его в localStorage или sessionStorage и извлекая его при необходимости. Помните, что данные в localStorage сохраняются даже после закрытия браузера, в то время как данные в sessionStorage будут удалены при закрытии вкладки.