Я использую финальную версию Ionic 2 с плагином angular2-jwt. Я успешная регистрация и получить маркер, который я экономлю на хранениеПриложение Ionic 2 не получает токен JWT из хранилища
this.storage.set('id_token', res.token);
Как только я обновить страницу, и я стараюсь, чтобы проверить авторизацию в моем auth.ts заголовка никогда не посылает маркера. Я понимаю, что проблема связана с асинхронным хранилищем, но я не знаю, как его решить. Я пробовал много разных решений ...
Кроме того, когда я сохраняю токен в своих константах, он отлично работает.
Моего app.module.ts выглядит следующим образом:
...
export function getAuthHttp(http) {
return new AuthHttp(new AuthConfig({
noJwtError: true,
globalHeaders: [{'Content-Type': 'application/json', 'x-academy': 'academy'}],
tokenGetter:() => storage.get('id_token'),
}), http);
}
...
providers: [
{provide: ErrorHandler, useClass: IonicErrorHandler},
{provide: AuthHttp, useFactory: getAuthHttp, deps: [Http]}
...
]
И мой auth.ts:
...
@Injectable()
export class Auth {
serverUrl: string;
storage: Storage = new Storage();
constructor(public http: Http,
public authHttp: AuthHttp,
public constantsService: ConstantsService,
) {
this.serverUrl = this.constantsService.API_ENDPOINT();
}
login(credentials){
let headers = new Headers({'Content-Type': 'application/json', 'x-academy': 'academy' });
return this.authHttp.post(this.serverUrl+'/login', JSON.stringify(credentials), {headers: headers})
}
....
public checkAuthentication(){
return this.authHttp.post(this.serverUrl+'/restricted',{})
}
....
Спасибо.
Для людей, которые могут смотреть на этот код, просто чтобы сказать, что все в порядке. Я забыл запомнить меня правдой ... да, я знаю ... – ACES