Невозможно включить / отправить токен jwt с помощью auth0 / angular-jwt - PullRequest
0 голосов
/ 08 января 2019

Я использую "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 в запросе заголовка

но серверу не удалось найти этот токен.

Когда я пытаюсь добавить токен с подключением хрома, он работает, и сервер может найти мой токен: добавлен токен с подключением хрома

Можете ли вы помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 09 января 2019

Я нашел решение, если оно поможет другому человеку, на самом деле оно исходит из бэкэнда, я изменил фильтры безопасности пружины, и мой запрос «ОПЦИИ» должен сначала пройти через фильтр 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);
...