【发布时间】:2019-12-11 05:14:17
【问题描述】:
我已经创建了这个服务来处理身份验证,它工作正常......
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { tap } from 'rxjs/operators';
import { Storage } from '@ionic/storage';
import { EnvService } from './env.service';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class AuthService {
isLoggedIn = false;
token:any;
constructor(
private storage:Storage,
private http: HttpClient,
private env: EnvService,
) { }
login(email: String, password: String) {
let formData = {
usuario : email,
senha : password,
retsession : true
}
return this.http.post(this.env.API_URL+'/login', formData).pipe(
tap(response => {
var token = ('jwt' in response) ? response.jwt : null ;
this.storage.set('token', token)
.then(
() => { console.log('Token Stored: ' + token); },
error => console.error('Error storing item', error)
);
this.token = token;
this.isLoggedIn = true;
return token;
}),
);
}
}
即使它工作正常,我也会遇到编译错误
[ng] ERROR in src/app/services/auth.service.ts(36,52): error TS2339: Property 'jwt' does not exist on type 'never'.
当我检查我的令牌是否存在于 http 响应数据中时,出现此错误...
检查这个避免这个错误的正确方法是什么?
【问题讨论】:
-
服务器正在响应 json 数据
-
响应如何?请举个例子。
-
{"jwt":"<my_token_here>", "user_id":"my_user_id_here"} -
我会这样验证: let token = response['jwt] !== undefined && response['jwt'] !== ' ' ?响应['jwt'] : null ;
-
只是一个建议,但您应该将输入信息传递到您的帖子请求中。 this.http.post
(URL, data).subscribe((response
标签: angular typescript ionic-framework