Обработка ошибок в ionic2 / Angular2

Попытка интегрировать встроенные в Laravel 5.4 API-интерфейсы с ionic 2 и с трудом справиться с ошибкой

Что я хочу сделать:

  • Аутентифицируйте вход в систему с помощью службы паролей Laravel (OAuth2).
  • После аутентификации он вернет токен доступа.
  • Токен доступа передается в заголовке в вызове GET API для получения
    данные пользователя.

Я могу № 1 и № 2, но застрял в № 3.

Вот мой код login.ts

public login() {
this.showLoading();
this.auth.login(this.loginCredentials).subscribe(allowed => {
if (allowed) {
setTimeout(() => {
this.loading.dismiss();
this.nav.setRoot(HelloIonicPage)
});
} else {
this.showError("Access Denied");
}
},
error => {
this.showError(error);
});
}

auth — поставщик услуг, у которого есть метод входа.

//Function to get access token

public login(credentials) {
if (credentials.email === null || credentials.password === null) {
return Observable.throw("Please insert credentials");
} else {
return Observable.create(observer => {
var link = 'http://localhost/XXX/public/oauth/token';
var vars =  {
password: "XXX",
username: "XXXXXX",
grant_type: 'password',
client_id: "XXXXX",
client_secret: 'XXXXXX',
scope: ''
}

this.http.post(link, vars)
.map(res => res.json())
.subscribe(
data => { let user = this.getUserFromAccessToken(data);
console.log(user);
observer.next(user);
},
err => { observer.error(err.json()); }
() => {
console.log('Completed..');
}
);});
}
}//Function to get user from the accessToken

private getUserFromAccessToken(oAuthData) {
let headers = new Headers({ 'Content-Type': 'application/json','Accept': 'application/json','Authorization': 'Bearer ' + oAuthData.access_token });
let options = new RequestOptions({ headers: headers });

let link = 'http://localhost/XXXX/public/api/v1/user';

return this.http.get(link, options)
.map(res => res.json())
.subscribe(
data => this.currentUser = data.user,
err => this.error = err
);
}

currentUser а также error определяются как свойства класса AuthService.

Как я должен убедиться, что выдается ошибка, либо в случае, если токен доступа не возвращен или пользователь не возвращен из токена доступа.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]