我如何获得以角度4登录的当前用户的名称?

时间:2018-03-21 14:53:31

标签: angular

我的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;
      }
  });
    }
在登录component.ts

  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;
            }
            
        });

1 个答案:

答案 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();

就是这样。