0
我可以在登錄後獲取令牌的值,因爲我正在傳遞函數的用戶名和密碼的值。在下一頁中,我沒有傳遞這些值。這對我爲什麼變得空無用有道理。那麼獲取該值的最有效方法是通過頁面之間傳遞用戶名和密碼並調用該函數?標記返回值的值爲空,未獲取標記的值。 Angular 4.3 Ionic 2+
Auth.ts
login(userName: string, password: string, route: string = null): any {
this.logout(false);
this.doLogin(userName, password)
.subscribe(response => {
let token:string = JSON.stringify(response.access_token);
this.storage.set('token', token);
console.log(token, 'this is the token here')
});
}
getToken(){
this.storage.get('token').then((val) => {
this.accessToken = val;
})
if(this.accessToken == undefined || this.accessToken == null){
return '0'
}
else{
return "Bearer " + this.accessToken.replace(/["]+/g, '')
}
}
component.ts
login(){
this.authService.login(this.account.username, this.account.password)
}
Interceptor.ts
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let access = this.auth.getToken()
const authReq = req.clone({
setHeaders: {
Authorization: access
}
});
return next.handle(authReq)
}
謝謝!
進行調整時出現此錯誤 - 錯誤TypeError:無法讀取未定義的屬性「長度」。還必須更改getToken():任何{} << ----- – userlkjsflkdsvm
只需從答案中複製/粘貼片段就不會讓您的代碼神奇地工作。試着理解你的問題,並在你的其他代碼中應用相同的技術,可能會出現類似的錯誤。 '.length'甚至不出現在上面的代碼中。 –
感謝幫助!我收到ERROR TypeError:無法讀取未定義的屬性'then',令牌未定義,因爲用戶未輸入憑據。我該如何去做,以便只有當用戶輸入他們的憑證時才調用這個函數。 – userlkjsflkdsvm