Я хотел бы создать средство защиты маршрутов для защиты маршрутов от неавторизованных пользователей.
Я использую jsonwebtoken для авторизации и в данный момент сохраняю это в localStorage.
Моя идея заключается в том, что когда пользователь хочет получить доступ к защищенному маршруту администратора, authguard отправляет токен для проверки на сервер nodeJS / Express, который после проверки возвращает значение true или 401 (независимо от того, является ли пользователь администратором)на стороне клиента.
служба аутентификации:
isLoggedIn(){
let headers = new HttpHeaders().set('x-auth-token',localStorage.getItem('token') || '');
return this.http.post('http://localhost:3000/api/users/check-auth', {}, { headers: headers }).toPromise();
}
служба аутентификации:
canActivate(){
return this.sign.isLoggedIn().then(res => {return res;}).catch(ex => {return ex});
}
Моя цель состоит в том, чтобы не задавать вручную ключ токена в локальном хранилище пользователемчтобы увидеть защищенный маршрут, даже если он не сможет выполнить какой-либо запрос XHR.
Не могли бы вы проверить, является ли это хорошей или плохой идеей, и предложить лучшее решение на стороне безопасности?Большое спасибо!