обновить компонент заголовка, как только пользователь будет подтвержден - PullRequest
1 голос
/ 05 октября 2019

Как я могу обновить компонент заголовка, когда пользователь входит в систему свои учетные данные и проверяется. Я хочу что-то вроде того, когда пользователь получает подтверждение, что это автоматически изменяет текст входа на выход из системы, и если пользователь нажимает кнопку выхода из системы, тогда он должен измениться на повторный вход. В настоящее время он изменяет текст, когда я обновляю угловое приложение.

Вот мой заголовок HTML & TS Code:

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'app-header',
  templateUrl: './header.component.html',
  styleUrls: ['./header.component.css']
})
export class HeaderComponent implements OnInit {
  date = Date.now();
  userName;
  
  constructor(private router: Router) {

  }

  ngOnInit() {
    this.userName = localStorage.getItem('user');
  }

  signOut(){
    localStorage.removeItem('user');
    this.router.navigate(['/']);
  }

}
 <li *ngIf="!userName"><a routerLink="/signin">Sign In</a></li>
 <li *ngIf="userName"><a (click)="signOut()">Logout</a></li>

Коды компонентов входа:

  signIn(){
    let user = this.signin.getRawValue();
    this.signinService.signin(user)
    .subscribe(res=>{
      this.resData = res;
      console.log(res);
      if(this.resData.Error==0){
        this.errMsg = this.resData.Message;
        localStorage.setItem('user', this.resData.uid);
        this.router.navigate(['/']);
      }
      else{}
    })
  }

Службы входа:

import { Injectable } from '@angular/core';
import { HttpClient} from '@angular/common/http';
import { url } from '../manual';


@Injectable({
  providedIn: 'root'
})
export class SigninService {

  constructor(private http: HttpClient) { }


  signin(user){
    return this.http.post(`${url}signIn`, user)
  }
}

А вот код API внутреннего интерфейса:

app.post('/api/signIn', function(req, res){
    let email = req.body.email;
    let password = sha1(req.body.password);
    signupModel.find({'email': email,'password': password,}, 'name email password', function(err, data){
        if(err){
            res.json({'Error': 1, 'Message': 'Something went wrong'});
        }
        else if(data.length==0){
            res.json({'Error': 1, 'Message': 'Email or password is not correct'});
        }
        else{
            res.json({'Error': 0, 'Message': 'Successfully Logged in','uid': data[0].name});
        }
    });
})
...