Angular, как я могу получить от authgaurd? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть программа Angular-springboot с аутентификацией jwt, я хотел бы знать, как я могу после входа в систему angular восстановить данные о том, кто входил в систему, например, имя пользователя. Я посмотрел несколько руководств по authgaurd и httpinterceptors, но я немного запутался в rigurado, может кто-нибудь из вас напишет мне код, в котором он получает данные? у меня есть службы, скопированные из руководств, которые являются auth-gaurd, аутентификацией, basic-auth-http-interceptors и httpclient, я думаю, что они довольно стандартны, но при необходимости я опубликую их

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

спасибо, да, у меня есть такой перехватчик, который сохраняет в локальном хранилище, но если я нахожусь в другом компоненте, и я хочу вызвать его, например, я нажимаю кнопку и, в методе, который я хочу сделать, например,, сообщение о том, что если вы нажмете эту кнопку, вы должны войти в систему, хорошо ?, и вы должны обновить дБ, так что мне нужно знать, кто нажал это, как можно получить это?

0 голосов
/ 06 ноября 2019

Когда пользователь входит в систему, сохраните тип токена и токен jwt в локальном хранилище. С помощью TokenInterceptor он отправляет данные заголовка в каждом запросе.

import { Injectable } from '@angular/core';
import {
  HttpRequest,
  HttpHandler,
  HttpEvent,
  HttpInterceptor, HttpResponse
} from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class TokenInterceptor implements HttpInterceptor {
  constructor() { }
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    request = request.clone({
      setHeaders: {
        Authorization: `${localStorage.getItem('token_type')} ${localStorage.getItem('jwt_token')}`
      }
    });
    return next.handle(request);
  }
}

В app.module.ts добавьте провайдера { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true }

...