我想在我的python程序中使用firebase数据库并将某些信息限制为某些用户。我已经弄清楚如何设置规则但是想在我的程序中实现身份验证部分。我已导入:
from firebase import firebase
我有一个用户:test.user@gmail.com pass:password123
我怎样才能发出验证此用户确实可以发帖的帖子请求?
答案 0 :(得分:0)
您可以使用DoSomething<MyOtherType>(obj);
创建自定义Security Rules
并验证用户权限。
检查此tutorial以获取更多信息
答案 1 :(得分:0)
我的解决方案是首先创建一个以用户名(包含声明)为键的firestore“集合”。然后,您可以修饰您的受限方法,以要求有效的idToken以及声明中的任意条件:
import firebase_admin
import firebase_fave
# wrapper function to require credentials and claims!
def require_creds(creds_reqs={}):
def real_require_creds(protected_function):
@wraps(protected_function)
def protector(*args, **kwargs):
token = request.args.get('idToken', '')
try:
auth_resp = firebase_admin.auth.verify_id_token(token, check_revoked=True)
claims = firebase_admin.firestore.client().collection('user_claims')\
.document(auth_resp['user_id']).get().to_dict()
except:
abort(401)
if 'exp' in auth_resp\
and auth_resp['exp'] > time.time()\
and min(*[bool(creds_reqs[k](v)) for k, v in claims.items()]):
return protected_function(*args, **kwargs)
else:
abort(401)
return protector
return real_require_creds
@require_creds(
{'access_flag': lambda x: x & 8, 'release_lag', lambda x: time.time() > RELEASE_TIME + x}
)
def your_post_method(self, ...
另请参阅我在pypi上的猴子补丁,该补丁向firebase_admin添加了verify_user方法: https://pypi.org/project/firebase_fave/