【问题标题】:How to do a costum authentication with firebase, angular and node?如何使用 firebase、angular 和 node 进行自定义身份验证?
【发布时间】:2020-10-24 20:32:06
【问题描述】:

所以我正在使用我的平均应用程序过渡到 firebase。

但是我迷失了关​​于如何验证用户身份的 firebase 网站上的所有信息。 我已经可以在 firebase 上创建用户并且我有一个节点项目。

所以我的问题是:

我需要怎么做登录部分?

我需要在我的 Angular 应用程序中调用 firebase.auth().signInWithEmailAndPassword() 吗?

我需要调用我的节点应用程序并进行身份验证吗?

如何检查用户是否登录?

如果你们知道一个很好的阅读,我很感兴趣

【问题讨论】:

    标签: node.js angular firebase


    【解决方案1】:

    登录

    import { AngularFireAuth } from '@angular/fire/auth'
    import { AngularFireDatabase, AngularFireList ,AngularFireObject } from '@angular/fire/database';
    import { Router } from '@angular/router';
    import * as firebase from 'firebase';
    
    @Injectable({
      providedIn: 'root'
    })
    export class AuthService {
    
    
      constructor(private fbAuth: AngularFireAuth ,public router:Router , public db :AngularFireDatabase) {}
    
      login(email,password){
        this.fbAuth.signInWithEmailAndPassword(email,password)
        .then(async user =>{
    
            await localStorage.setItem('userData', user.user.refreshToken) 
            this.router.navigate(['home'])
    
        }).catch(error=>{
               console.error(error)
      }
      }
      
    }
    

    方法一检查登录状态

    isAuth(){
      const luserData = localStorage.getItem('userData');
    
        // console.log(userData);
        if (luserData && luserData.length > 0) {
          return true;
        } else {
          return false;
        }
    }
    
    

    方法二检查登录状态

    async loginStatus(): Promise<boolean> {
      return new Promise((resolve,reject) => {
        const auth = firebase.auth()
        auth.onAuthStateChanged(firebaseUser => {
          if(firebaseUser) {
            resolve(true)
          } else {
            resolve(false)
          }
        })
     })
    }
      
    async checkLoginStatus() {
      const isLoginSuccessed: boolean = await this.loginStatus()
      return isLoginSuccessed;
      }
    

    希望这会有所帮助。

    【讨论】:

    • thx,这给了我更多的洞察力,在谷歌搜索更多之后,我找到了我需要的东西!你的大脑
    猜你喜欢
    • 2017-01-01
    • 2020-09-02
    • 2016-07-09
    • 2019-03-21
    • 2017-07-03
    • 2016-12-16
    • 2020-04-01
    • 2022-12-10
    • 1970-01-01
    相关资源
    最近更新 更多