От веб-API до Angular клиента, необходимо проверить токен аутентификации - PullRequest
0 голосов
/ 23 октября 2018

Я изучаю Angular 6. Из моего веб-интерфейса (.net core) я отправляю следующее, что вижу на Почтальоне:

{"token":`{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqeWVlQGNvbGxhYnJhbGluay5jb20iLCJqdGkiOiI2OWVmYmIxNC0wYTBjLTQ5NjgtYjVhZi1mNDYzMTQ2ZDViNmUiLCJ1bmlxdWVfbmFtZSI6IkpvaG5ZZWUiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiYWRtaW4iLCJhbmFseXN0IiwicmV2aWV3ZXIiLCJjb21taXR0ZWUiXSwibmJmIjoxNTQwMzEyODIwLCJleHAiOjE1NDAzMzA4MjAsImlzcyI6ImxvY2FsaG9zdCIsImF1ZCI6InVzZXJzIn0.GegIg2GfpvzI0PGuSIzLUsZtYa-jaGgxGP7yb5A7-CU","expiration":"2018-10-23T21:40:20Z"}`

С моего углового клиента, который звонитвеб-интерфейс, вот мой код

loginUser(user) : Observable<boolean> {
      var reqHeader = new HttpHeaders({ 'Content-Type': 'application/x-www-urlencoded','No-Auth':'True' });
  return  this.http
        .post('http://localhost:55009/api/login', user )
        .map((data: any) => {
          this.token = data.token;
            localStorage.setItem('userToken', data.token);
            let tokenInfo = this.getDecodedAccessToken(data.token);
console.log('token ===> ' + data.token);
console.log('token ===> ' + tokenInfo);

console.log('token ===> ' + this.token);
                //  this.token = data.token;
                //  this.tokenExpiration = this.getDecodedAccessToken(data.token).ex;
                 this.errorMessage = data.errorMessage;

                //if (this.errorMessage.length > 0) {

               //   alert(data.errorMessage);
              //    return false;
               // }
               // else {
                 // alert(data.errorMessage);

                  return true;
                })
    //  .map((response:any) => response.json())
     .catch(this.handleError);
}



private getDecodedAccessToken(token: string): any {
    try{
        return jwt_decode(token);
    }
    catch(Error){
        return null;
    }
  }

На моей хромированной консоли я вижу только это

token ===> [object Object]
login.service.ts:41 token ===> null
login.service.ts:43 token ===> [object Object]

Я хочу убедиться, что я получаю действительный токен и могусм. содержание токена и срок действия.Я устанавливаю jwt-decode, но он не работает по возвращении.

Любая помощь очень ценится.

Спасибо

1 Ответ

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

Поместив свой ответ на некоторый json lint, вы уже можете видеть, что он не является действительным json, но давайте предположим, что он выглядит следующим образом:

{ <- this is where your 'data' start
    "token": { <- this is property of 'data', and it's object
        "token":  "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqeWVlQGNvbGxhYnJhbGluay5jb20iLCJqdGkiOiI2OWVmYmIxNC0wYTBjLTQ5NjgtYjVhZi1mNDYzMTQ2ZDViNmUiLCJ1bmlxdWVfbmFtZSI6IkpvaG5ZZWUiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiYWRtaW4iLCJhbmFseXN0IiwicmV2aWV3ZXIiLCJjb21taXR0ZWUiXSwibmJmIjoxNTQwMzEyODIwLCJleHAiOjE1NDAzMzA4MjAsImlzcyI6ImxvY2FsaG9zdCIsImF1ZCI6InVzZXJzIn0.GegIg2GfpvzI0PGuSIzLUsZtYa-jaGgxGP7yb5A7-CU",
        "expiration": "2018-10-23T21:40:20Z"
    }
}

Так что, если вы хотите получить действительный токен eyJhbGciOiJIUzI1NiI..., вам нужнозвоните data.token.token.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...