【发布时间】:2017-06-29 01:47:03
【问题描述】:
我正在使用带有 angular2-jwt 插件的 Ionic 2 最终版本。我正在成功记录并接收我保存到存储中的令牌
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',{})
}
....
谢谢。
【问题讨论】:
-
对于那些可能正在查看此代码的人来说,这一切都很好。我忘了把记住我设置为真的......是的,我知道......