我使用"https://github.com/auth0/angular2-jwt"将JWT令牌发送到我的服务器,当我调试http请求(角度)时我可以看到令牌,但在服务器(java)找不到令牌
这是我的配置JWT
JwtModule.forRoot({
config: {
headerName: 'API_TOKEN',
tokenGetter: function tokenGetter() {
return localStorage.getItem('API_TOKEN');
},
whitelistedDomains: ['localhost:8092'],
// blacklistedRoutes: ['https://localhost:8092/login'],
authScheme: ''
}
}),
我添加了一个 JwtHttpInterceptor 来调试我的请求:
@Injectable()
export class JwtHttpInterceptor implements HttpInterceptor {
constructor() {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req);
}
}
这是一个屏幕截图:标头请求中的JWT令牌
但服务器找不到此令牌。
当我尝试使用chrome插件添加令牌时,它可以工作,服务器可以找到我的令牌:使用chrome插件添加的令牌
你能帮我吗?
如果它可以帮助另一个人,我找到了解决方案,实际上它来自后端,我反转了弹簧安全过滤器,我的请求"选项"应该首先通过过滤器 CORS
httpSecurity
.addFilter(jwtAuthenticationFilter)
.addFilterBefore(corsInputFilter, UsernamePasswordAuthenticationFilter.class) // OPTIONS REQUEST SHOULD COME HERE IN THE FIRST AND RETURN THE RESPONSE WITHOUT CONTINUE OTHERS FILTERS
.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);