Angular 如何从authguard中检索?

Angular 如何从authguard中检索?,angular,post,angular-http-interceptors,jwt-auth,auth-guard,Angular,Post,Angular Http Interceptors,Jwt Auth,Auth Guard,我有一个带有jwt身份验证的Angular springboot程序,我想知道一旦登录Angular,如何恢复登录者的数据,例如用户名。我看了一些关于authguard和httpinterceptors的指南,但我对rigurado有点困惑,你们中有谁能给我发一个代码来检索数据吗?我从指南中复制了一些服务,这些服务是auth-guard、authentication、basic auth-http拦截器和httpclient,我认为它们非常标准,但如果需要,我会在用户登录系统时发布它们,并将令牌

我有一个带有jwt身份验证的Angular springboot程序,我想知道一旦登录Angular,如何恢复登录者的数据,例如用户名。我看了一些关于authguard和httpinterceptors的指南,但我对rigurado有点困惑,你们中有谁能给我发一个代码来检索数据吗?我从指南中复制了一些服务,这些服务是auth-guard、authentication、basic auth-http拦截器和httpclient,我认为它们非常标准,但如果需要,我会在用户登录系统时发布它们,并将令牌类型和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);
  }
}
从'@angular/core'导入{Injectable};
进口{
HttpRequest,
HttpHandler,
HttpEvent,
HttpInterceptor,HttpResponse
}来自“@angular/common/http”;
从“rxjs”导入{Observable};
@可注射()
导出类TokenInterceptor实现HttpInterceptor{
构造函数(){}
拦截(请求:HttpRequest,下一步:HttpHandler):可观察{
request=request.clone({
集合标题:{
授权:`${localStorage.getItem('token\u type')}${localStorage.getItem('jwt\u token')}`
}
});
下一步返回。处理(请求);
}
}

在app.module.ts中,当用户登录到系统时,添加提供程序
{provide:HTTP_拦截器,useClass:TokenInterceptor,multi:true}

将令牌类型和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);
  }
}
从'@angular/core'导入{Injectable};
进口{
HttpRequest,
HttpHandler,
HttpEvent,
HttpInterceptor,HttpResponse
}来自“@angular/common/http”;
从“rxjs”导入{Observable};
@可注射()
导出类TokenInterceptor实现HttpInterceptor{
构造函数(){}
拦截(请求:HttpRequest,下一步:HttpHandler):可观察{
request=request.clone({
集合标题:{
授权:`${localStorage.getItem('token\u type')}${localStorage.getItem('jwt\u token')}`
}
});
下一步返回。处理(请求);
}
}

在app.module.ts add provider
{provide:HTTP_拦截器,useClass:TokenInterceptor,multi:true}
谢谢,是的,我有一个这样的拦截器保存在本地存储中,但是如果我在另一个组件中,我想调用它,例如,我按下一个按钮,然后在我想执行的方法中,一篇帖子,如果你按下这个按钮,你必须被记录好吗?你必须更新数据库,所以我需要知道谁按下了这个,如何检索这个?

谢谢,是的,我有一个这样的拦截器保存在本地存储中,但是如果我在另一个组件中,我想调用它,例如,我按下一个按钮,在我想做的方法中,例如,一篇帖子,如果你按下这个按钮,你必须被记录好吗?你必须更新数据库,所以我需要知道谁按下了这个按钮,如何检索这个?

您好,首先,你列出的一些服务并没有真正用于检索/获取数据。例如:-Authguard:如果您指的是RouteGuard,则它们用于允许/阻止用户访问特定的路由,这通常基于身份验证()-HttpInterceptors:它们用于为您要针对的任何API请求执行任何附加逻辑()一旦经过身份验证的用户登录,您将如何处理他们的详细信息?(就像他们的id一样)输入错误警报-这是一个守卫-而不是“高尔德”…您好,首先,您列出的一些服务并没有真正用于检索/获取数据。例如:-Authguard:如果您指的是RouteGuard,则它们用于允许/阻止用户访问特定的路由,这通常基于身份验证()-HttpInterceptors:它们用于为您要针对的任何API请求执行任何附加逻辑()一旦经过身份验证的用户登录,您将如何处理他们的详细信息?(就像他们的身份证一样)打字错误警报-是警卫-不是“高尔德”。。。。