Когда вы сохраняете токены в localStorage, вы должны признать риск того, что пользователь может изменить его и установить свой собственный токен.Но, как я полагаю, у вас есть какой-то внутренний сервис, который проверяет действительность доступа или обновляет токены.Поэтому, если вам нужно проверить токен пользователя с помощью guard, вы можете отправить некоторый запрос на сервер от guard, и если пользователь аутентифицирован (значит, токен действителен), тогда вернуть true.В любом случае, если вы возвращаете некоторую информацию из серверной части с авторизацией, любой пользователь должен иметь действительный токен.Будете ли вы делать это из охраны или просто со страницы.Я, например, предпочитаю проверку подлинности токена вне охраны.При инициализации контроллера (OnInit).
Имейте в виду, что вы не должны сохранять или загружать защищенные приложением данные из серверной части без авторизации.
Как насчет: Есть ли у менясоздать какой-нибудь метод в методе Dashboard Init () для проверки правильности JWT, и если да, то какова цель AuthGuard?Пожалуйста, предложите.
обычно пользователи не будут добавлять элементы локального хранилища вручную, поэтому вы можете проверить только, если токен существует.
Кроме того, я использую angular jwt, который является пакетом от Auth0.https://github.com/auth0/angular-jwt
используя пакет Я проверяю, не истек ли токен.Смотрите мой код:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const refToken = refreshTokenGetter();
const helper = new JwtHelperService();
const isExpired = helper.isTokenExpired(refToken);
if (refToken && !isExpired) {
return true;
}
this.router.navigate(['auth']);
}