Я работаю над приложением Angular с базовым веб-сайтом ASP. NET для серверной части. Ie. на основе шаблона Angular. NET. Я также использую Auth0.
Поскольку я не хочу, чтобы Angular HTML / Javascript был доступен для всех, кто не вошел в систему, я добавил аутентификацию как для сервера - сторона и интерфейс.
Итак, из-за аутентификации на стороне сервера - как только вы посещаете страницу в первый раз, вы сразу же перенаправляетесь со стороны сервера на Auth0 для входа в систему, а затем вы перенаправляетесь вернуться на сайт. Это работает нормально.
После входа в систему (на стороне сервера) клиентская сторона выполняет следующие действия в конструкторе app.component.ts…
authService.isAuthenticated$.subscribe(value => {
if (!value)
authService.login()
})
Обратите внимание, что для клиента -side, я точно выполнил следующие инструкции: https://auth0.com/docs/quickstart/spa/angular2
Итак, authservice
в моем примере выше, просто использует authservice с этой страницы быстрого запуска Auth0.
Идея приведенного выше фрагмента заключается в том, что если вы дойдете до этой точки, вы уже вошли в систему из-за перенаправления на стороне сервера, и указанный выше 'this.authService.login ()' будет вызываться только первым time и будет перенаправлен на auth0 и сразу же обратно, потому что вы уже вошли в систему провайдера идентификации auth0. Таким образом, это перенаправление на стороне клиента просто заполняет локальное хранилище браузера.
Это отлично работает в Chrome (хотя перенаправляет на auth0 на дополнительное время, чем я ожидал). Однако в Firefox это постоянно перенаправляет обратно на auth0, обратно на мой сайт, обратно на auth0, et c.
Я предполагаю, что я подхожу к этой проблеме совершенно неверным способом! Может ли кто-нибудь посоветовать лучший способ решения этой проблемы?
Я тоже пробовал сделать то же самое, но с использованием свойства authService.loggedIn
. Но это затем постоянно перенаправляет в Chrome и Firefox!