Как передать JsonWebToken (JWT) через AngularJS - PullRequest
0 голосов
/ 21 ноября 2018

Я создал Django RESTful API с JWT в качестве метода аутентификации, но не смог передать токен как заголовок, используя angularJS.

Я думаю, что в моем API нет ошибки, так как я использовал токен, полученный мнойэтот скрипт и протестировал его в Почтальоне: enter image description here

мой скрипт аутентификации токена JWT находится здесь:

 // Uses http.get() to load data from a single API endpoint
  list() {
    return this.http.get('api/', this.getHttpOptions());
  }

// helper function to build the HTTP headers
  getHttpOptions() {
    return {
      headers: new HttpHeaders({
        'Content-Type': 'application/json',
        'Authorization': 'JWT ' + this._userService.token
      })
    };
  }

Я попытался использовать http.get() здесь.Заранее спасибо!

ошибка будет такой:

401 (Unauthorized)

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

Та же проблема в JWT для CakePHP3 и следуйте заголовку, если хотите, это может быть полезно.

this.http.get('api/', { headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'Authorization': 'JWT ' + this._userService.token,
    'Authenticationtoken': 'JWT ' + this._userService.token
}) });
0 голосов
/ 26 ноября 2018

Спасибо, ребята, я обнаружил, что проблема связана с CORS, Мои решения здесь, есть два подхода к решению этой проблемы, один из них - добавить 'Access-Control-Allow-Origin': '*' в ваш запрос http, иногдавам нужно добавить больше.Другой ответ - добавить CORS_ORIGIN_WHITELIST = 'localhost: 4200' в свой бэкэнд.https://www.youtube.com/watch?v=OIbndrrUYiY

0 голосов
/ 21 ноября 2018

Попробуйте это:

list() {
return this.http.get('api/', { this.getHttpOptions() });  
}

getHttpOptions() {
  const headers = new HttpHeaders({
    'Content-Type': 'application/json',
    'Authorization': 'JWT ' + this._userService.token
  }); 
   return headers;
}
...