【问题标题】:Firebase python admin sdk isNewUser ()Firebase python admin sdk isNewUser()
【发布时间】:2020-04-10 14:49:07
【问题描述】:

您好,我目前正在我的 django 服务器上使用 firebase admin sdk 来处理我的应用程序。我想检查用户是否是第一次在服务器端登录的用户。我想在 django 服务器上使用 firebase isNewUser() 但在 firebase admin sdk docs 中我没有看到任何相关信息。

我的服务器端从令牌中获取用户(从应用程序发送):

from utils.firebase_utils import auth

class FirebaseAuthentication(authentication.BaseAuthentication):
    def authenticate(self, request):
        token = request.META['HTTP_AUTHORIZATION']

    if not token: 
        return None 

    try:
        decoded_token = auth.verify_id_token(token)
        uid = decoded_token['uid']
        user = auth.get_user(uid, app=None)
       # need to check if user first time log in too
    except Exception as e:
        raise exceptions.AuthenticationFailed('No such user') 

    return (user, None) # authentication successful

如何查看用户是否首次登录?

【问题讨论】:

    标签: python django firebase firebase-authentication firebase-admin


    【解决方案1】:

    在 Python 的 Admin SDK 中确实没有 isNewUser 方法。

    一种解决方法是比较UserMetadata objectcreation_timestamplast_sign_in_timestamp 属性。如果两者接近(彼此相差 1 秒内),则为新用户。这实际上是文档所说的在引入isNewUser 方法之前检查用户记录的“新度”的方式,这是因为两个时间戳在短时间内存在粒度差异。

    【讨论】:

    • 如果在 1 秒之内,则不太可靠,因为它取决于网络
    猜你喜欢
    • 2021-07-29
    • 2018-03-20
    • 2021-11-17
    • 1970-01-01
    • 2019-05-16
    • 2018-05-17
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    相关资源
    最近更新 更多