以角度登录验证

问题描述 投票:0回答:4

我是angular的新手,我正在尝试实现简单的注册和登录身份验证。我可以轻松注册以将数据推送到firebase。我在这里遇到的是登录时如果用户名和密码匹配,那么它会重定向到另一个页面,否则重定向抛出错误。

HTML:

<form id="submission" [formGroup]="fbform">
        <div class="form-group">
        <label for="name">Name:</label>
        <input type="text" class="form-control" placeholder="Username" [(ngModel)]="name" formControlName="name">
        </div>
        <div class="form-group">
        <label for="password">Password:</label>
        <input type="text" class="form-control" placeholder="Password" [(ngModel)]="password" formControlName="password">
        </div>
        <button type="submit" (click)="SignIn(name,password)" class="btn btn-default" [disabled]="!fbform.valid">Submit</button>
    </form>

注册-component.ts

SignIn(name,password){
  let username = name;
  let password = password;
  let credentials = btoa(username + '??' + btoa(password)) // 

  firebase.database().ref('/users').on('child_added', (data)=>{
      let dat = data.val()
      this.values.push(dat)
      let check = this.values.filter(val => val.name == username && val.name == password );

      //after that am stucked 
      if (check2 ? 'true':'false'){
        this.router.navigateByUrl('/');}
      }
  )
}
angular firebase
4个回答
3
投票

您可以使用firebase身份验证

 signInUser() {
    this.fire.auth
      .signInWithEmailAndPassword(this.email.value, this.password.value)
      .then(data => {
        this.currentUserUid = JSON.stringify(data.uid);
        sessionStorage.setItem("Sessionuid", this.currentUserUid);
        sessionStorage.setItem("Sessioneml", data.email);

        console.log("Success! You're logged in");

          this.navCtrl.push(HomePage, {
            uid: this.currentUserUid
          });

        // user is logged in
      })
      .catch(error => {
        console.log("got an error", error);
        this.alert(error.message);
      });

  }

2
投票

使用本文使用firebase https://firebase.google.com/docs/auth/web/start创建auth系统


2
投票

你必须在成功后回来。

this.router.navigateByUrl('./');

或其他页面

this.router.navigateByUrl('./LoginDenied');

0
投票

使用以下代码:

SignIn(name,password){
  let username = name;
  let password = password;
  let credentials = btoa(username + '??' + btoa(password)) // 

  firebase.database().ref('/users').on('child_added', (data)=>{
      let dat = data.val()
      this.values.push(dat)
      let check = this.values.filter(val => val.name == username && val.name == password );

      //after that am stucked 
      if (check && check.length > 0){
        this.router.navigateByUrl('/');}
      } else {
        // you can also use a div to show error. Just create a string
        // varibale and use ngIf to show the error message
        alert("Username or password doesn't match");
      }
  )
}

希望它会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.