невозможно авторизоваться с помощью passpost-jwt в expressJs при использовании angular 7 - PullRequest
0 голосов
/ 29 октября 2018

Я новичок в среднем стеке, использую passport-jwt для авторизации. Я включил cors для получения / отправки запроса извне. поэтому я могу публиковать / получать данные, используя angular 7, но не могу авторизовать токен, сгенерированный JWT. Во-первых, авторизация работает нормально при использовании RestClient Addon в Firefox (аналогично почтальону в Chrome), который вы видите на этом изображении Restclient.

Но при попытке получить запрос от того же API с помощью Angular, затем получить это consoleError это мой угловой сервис

  getProfile():Observable<any>{
    let headers = new HttpHeaders();
    console.log(localStorage.getItem('mean_token'));
    headers.append('Authorization', localStorage.getItem('mean_token'));
    return this.http.get('http://localhost:8888/users/profile', {headers:headers});
  }

и это код узла-экспресса

//profile
router.get('/profile', passport.authenticate('jwt', {session:false}), (req, res, next)=>{
    console.log("profle called");
    res.json({user:req.user});
});

долго пытался найти ответ, пожалуйста, помогите мне.

примечание: остальные API работают для get / post и работают с angular.

1 Ответ

0 голосов
/ 29 октября 2018

Вот решение, которое я найду для новой версии angular (> 6). headers.append() не работает, так как HttpHeaders объект неизменен. вам нужно изменить заголовки на это:

    const headers = new HttpHeaders({ 'Content-Type': 'application/json', 
'Authorization': localStorage.getItem('mean_token') });

и теперь все работает нормально ..

...