Я новичок в угловых и asp.net веб API.Я создаю сайт, используя asp.net web api и angular 7, и я выполнил регистрацию и вход в систему, но теперь мне нужно использовать sessionStorage вместо localStorage в угловом коде.Я делюсь всеми этими файлами, где я использую localStorage и код localStorage работает отлично, но теперь мне нужно использовать sessionStorage .it показать всю информацию о пользователе, который является логином в настоящее время. Пожалуйста, помогите мне.Спасибо. Я делюсь всем кодом, который я сделал для localstorage. Я знаю, что это сбивает с толку, но надеюсь, что вы можете решить мою проблему.
Это класс перехватчика
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor(private router: Router) {
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (localStorage.getItem('token') != null) {
const clonedReq = req.clone({
headers: req.headers.set('Authorization', 'Bearer ' + localStorage.getItem('token'))
});
return next.handle(clonedReq).pipe(
tap(
succ => { },
err => {
if (err.status == 401){
localStorage.removeItem('token');
this.router.navigateByUrl('/user/login');
}
}))}
else
return next.handle(req.clone());
}}
//login compnent ts file
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styles: []
})
export class LoginComponent implements OnInit {
formModel ={
UserName :'',
Password:''
}
constructor(private service: UserService, private router: Router, private toastr: ToastrService) { }
ngOnInit() {
if (localStorage.getItem('token') != null)
this.router.navigateByUrl('/home');
}
onSubmit(form: NgForm) {
this.service.login(form.value).subscribe(
(res: any) => {
localStorage.setItem('token', res.token);
this.router.navigateByUrl('/home');
},
err => {
if (err.status == 400)
this.toastr.error('Incorrect username or password.', 'Authentication failed.');
else
console.log(err);
}
);
}
}
// файл auth.grud.ts
@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
constructor(private router: Router) {
}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (localStorage.getItem('token') != null)
return true;
else {
this.router.navigate(['/user/login']);
return false;
}
}
}
// home component.ts file
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styles: []
})
export class HomeComponent implements OnInit {
userDetails;
constructor(private router: Router, private service: UserService) { }
ngOnInit() {
this.service.getUserProfile().subscribe(
res => {
this.userDetails = res;
},
err => {
console.log(err);
},
);
}
onLogout() {
localStorage.removeItem('token');
this.router.navigate(['/user/login']);
}
}
пожалуйста, скажите мне, как я могу выполнить эту задачу.