我的Angular4应用程序应该获取当前登录用户如何将用户名输入我的应用程序。
Signin(email: string, password:string ): Observable<boolean> {
// console.log(info);
var data = JSON.stringify({email: email, password: password});
return this.http.post(this.server +"user/signin" , data, this.options).map((response: Response) => {
// login successful if there's a jwt token in the response
let token = response.json() && response.json().token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify({ email:email , token: token }));
// return true to indicate successful login
return true;
} else {
// return false to indicate failed login
return false;
}
});
}
中
onSignin() {
this.loading = true;
this.authService.Signin(this.model.email, this.model.password)
.subscribe(result => {
if (result === true) {
// login successful
this.router.navigate(['/']);
} else {
// login failed
this.error = 'Username or password is incorrect';
this.loading = false;
}
});
答案 0 :(得分:2)
看起来您正在currentUser
下的localstorage中存储用户电子邮件(我假设您的用户名)。
因此,要获得该电子邮件,您将在获取信息所需的任何组件或服务中执行以下操作。
通过服务来实现:
getUsername() {
return JSON.parse(localStorage.getItem('currentUser')).email;
}
直接在组件中获取它:
username = JSON.parse(localStorage.getItem('currentUser')).email;
// or if you are using the service method above then in your component do following:
username = this.myService.getUsername();
就是这样。