首页 > 解决方案 > Angular,登录/注册后标题不刷新

问题描述

正如标题所说,我希望在用户登录或刚刚注册后显示“嗨,”用户名“”。但是,我的标头似乎没有立即收到信息,但用户必须手动刷新页面才能让标头接收信息。下面是我的“authentication.service”

public login(user: TokenPayload): Observable<any>{
    const base = this.http.post('/user/login', user)
    const request = base.pipe(
      map((data: TokenResponse) => {
        if(data.token){
          this.saveToken(data.token)
        }
        
        return data
        
      })
    )
    return request
  }
  
  public register(user: TokenPayload) : Observable<any>{
    const base = this.http.post('/user/register', user)
    const request = base.pipe(
      map((data: TokenResponse) => {
        if(data.token){
          this.saveToken(data.token)
        }
        return data
      })
    )
    return request
  }

登录组件

login() {
    this.auth.login(this.credentials).subscribe(
      () => {
        this.router.navigateByUrl('/')
  

      },
      err => {
        console.error(err)
      }
    )
  }

header.component

ngOnInit() {
    if(this.auth.isLoggedIn()){
      this.auth.myProfile().subscribe(user => {
        this.mydetails = user
        console.log(this.mydetails.id)
        
      },
      err => {
        console.error(err)
      })
    }
  }

谢谢!

标签: angularauthentication

解决方案


推荐阅读