首页 > 解决方案 > JWT 模块中的 Angular 5 tokenGetter 方法不设置令牌

问题描述

我在 Angular 中有一个使用 JWT 进行身份验证的应用程序。第一次加载应用程序时,一切正常,每个请求都包含令牌中的授权标头,但是当我在登录时按 f5 键进行更新时,所有请求都是在没有令牌的情况下发出的。所以在那之后我收到了 403 状态码。

LoginService 中的方法

login(login, senha) {
return this.http.post(this.utilService.urlName + 'login', JSON.stringify({ login: login, senha: senha }), { observe: 'response' })
  .map((response: HttpResponse<any>) => {
    if (response.ok) {
      let token = response.headers.get("Authorization");
      localStorage.setItem('auth_token', token);
      this.loggedIn = true;
    }
    return response.ok;
  });
}

令牌获取方法

export function tokenGetter() {
return localStorage.getItem('auth_token');
}

我的模块

 JwtModule.forRoot({
        config:{
            tokenGetter:tokenGetter,
            whitelistedDomains: [getUrlServer()],
            blacklistedRoutes: [getUrlServer()+'/login']            }
    }),

标签: angularjwt

解决方案


推荐阅读