Приложение, использующее Auth0 собирается перейти на страницу входа при обновлении - PullRequest
0 голосов
/ 22 мая 2019

Мое простое приложение, написанное на Javascript, использует сервис (который написан как обертка на Auth0) для аутентификации.При успешном входе в систему, если я обновляю домашнюю страницу, приложение снова переходит на страницу входа (даже если я сохранил токен доступа в файлах cookie)

Я также пытался сохранить токен доступа в хранилище сеансов браузера.

Когда мой index.html запущен, я проверяю, содержит ли URL моего приложения токен доступа.Если токена нет, я перенаправляю его на страницу входа.

if (((window.location.hash).indexOf('access_token') < 0)) {
            location.replace(redirectUrl);
} 

При успешном входе в систему, так как в URL есть токен доступа, приложение работает нормально.Но в следующий раз, когда я обновлю домашнюю страницу, у нее не будет токена доступа в URL.

Насколько я понимаю, поскольку у меня есть токен доступа в файлах cookie, он не должен снова запрашивать у меня логин, пока токен действителен.

  1. Он все еще запрашивает логин.Какую стратегию следует использовать для сохранения токена?
  2. При выходе из системы я устанавливаю срок действия файла cookie.Есть ли какой-нибудь идеальный способ выйти из системы, кроме этого?

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

В настоящее время у вас есть несколько неполная реализация.

Насколько я понимаю, поскольку у меня есть токен доступа в куки, он не должен снова запрашивать у меня логин, пока токен действителен.

Сохранение токена в хранилище cookie и локальном хранилище не имеет отношения к состоянию аутентификации пользователя. Это просто способ сохранить токен и прочитать данные. В каждой навигации вам нужно прочитать токен и извлечь информацию из токена, чтобы убедиться, что пользователь аутентифицирован.

Архитектура, которой вы должны следовать:

  • Перенаправить пользователя на / авторизовать конечную точку, если в приложении нет действующего токена.
  • Как только auth0 завершит проверку пользователя, пользователь будет перенаправлен в URL-адрес обратного вызова из белого списка. Убедитесь, что этот URL является уникальным, и сохраните токен из фрагментов URL. Очень важно выполнить проверку токена на стороне клиента. В противном случае это будет серьезной проблемой безопасности. https://auth0.com/docs/tokens/guides/id-token/validate-id-token
  • Перенаправить пользователя на защищенный URL.

Я бы настоятельно рекомендовал использовать auth0 SDK, поскольку он устраняет все проблемы безопасности, включая проверку подписи токенов с использованием алгоритма RS256. https://auth0.com/docs/quickstart/spa/vanillajs/01-login

Вы можете найти следующую полезную тему Почему срок действия моего токена auth0 истекает при обновлении страницы или переходе по ссылке в моем приложении Angular?

0 голосов
/ 31 мая 2019

Это часто может быть устранено с помощью захвата файла HAR для отслеживания следа, оставленного в потоке аутентификации.Однако, поскольку у нас нет этой опции на данном этапе, вот пара вещей, на которые стоит обратить внимание.

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