Firebase python admin sdk isNewUser ()
Firebase python admin sdk isNewUser ()
您好,我目前在我的 Django 服务器上使用 firebase admin sdk 来处理我的应用程序。我想检查用户是否是第一次登录服务器的用户 side.I 想使用 firebase isNewUser() on the django server but in the 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 的 Admin SDK 中确实没有 isNewUser
方法。
解决方法是比较 UserMetadata object
的 creation_timestamp
和 last_sign_in_timestamp
属性。如果两者相近(相差1秒以内),则为新用户。这实际上是文档中所说的在引入 isNewUser
方法之前检查用户记录的 "newness" 的方式,这是因为两个时间戳在短时间内存在粒度差异。
您好,我目前在我的 Django 服务器上使用 firebase admin sdk 来处理我的应用程序。我想检查用户是否是第一次登录服务器的用户 side.I 想使用 firebase isNewUser() on the django server but in the 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 的 Admin SDK 中确实没有 isNewUser
方法。
解决方法是比较 UserMetadata object
的 creation_timestamp
和 last_sign_in_timestamp
属性。如果两者相近(相差1秒以内),则为新用户。这实际上是文档中所说的在引入 isNewUser
方法之前检查用户记录的 "newness" 的方式,这是因为两个时间戳在短时间内存在粒度差异。