我是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('/');}
}
)
}
您可以使用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);
});
}
使用本文使用firebase https://firebase.google.com/docs/auth/web/start创建auth系统
你必须在成功后回来。
this.router.navigateByUrl('./');
或其他页面
this.router.navigateByUrl('./LoginDenied');
使用以下代码:
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");
}
)
}
希望它会有所帮助