【问题标题】:Safest way to get User Id in AngularFire2在 AngularFire2 中获取用户 ID 的最安全方法
【发布时间】:2018-01-31 10:43:44
【问题描述】:

我在弄清楚在 AngularFire2 中获取经过身份验证的用户 uid 的最安全方法时遇到了一些问题。我注意到有两种方法可以实现这一目标。我不确定哪种是最安全的获取方式,以防其中一种方式存在必须事先满足的问题/某些条件。

方法一:使用auth变量

constructor(private afAuth: AngularFireAuth) { 
    let uid = this.afAuth.auth.currentUser.uid
}

方法二:订阅

constructor(private afAuth: AngularFireAuth) { 
    let uid = this.afAuth.authState.subscribe(user => user.uid)
}

【问题讨论】:

    标签: javascript angular typescript firebase angularfire2


    【解决方案1】:

    我认为您正在为方法 2 寻找类似的东西。

    constructor(private afAuth: AngularFireAuth) { 
      this.afAuth.authState.subscribe(user => {
        if(user) {
          this.uid = user.uid;
        } else {
          // Empty the value when user signs out
          this.uid = null;
        }
      });
    }
    

    在这种情况下,它会比方法 1 更好。目前您将 var "uid" 设置为订阅,而不是实际的 uid 值。在访问 uid 属性之前,我还添加了一个检查以确保用户存在。

    第一个选项的问题是,如果用户注销并以不同的帐户重新登录,则 uid 将保持不变。后者订阅了身份验证状态,因此您不会遇到此问题。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 2012-07-13
      • 2013-11-03
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      相关资源
      最近更新 更多