6 python firebase firebase-authentication firebase-admin
我正在使用 firebase-admin-python SDK 来处理 iOS 应用程序和 Flask 后端 (python) 之间的身份验证。这是我的后端身份验证端点,遵循firebase 指南:
from flask import request
from firebase_admin import auth
def get():
"""accessed via '/api/authtoken' """
try:
fir_token = request.headers["Authorization"]
decoded_token = auth.verify_id_token(fir_token)
fir_auth_id = decoded_token["uid"]
except:
...
Run Code Online (Sandbox Code Playgroud)
如何模拟 fir_token 进行单元测试?我如何模拟auth.verify_id_token这样我就不需要实际连接到 firebase 服务器?
将逻辑放在界面后面。
class TokenVerifier(object):
def verify(self, token):
raise NotImplementedError()
class FirebaseTokenVerifier(TokenVerifier):
def verify(self, token):
return auth.verify_id_token(token)
class MockTokenVerifier(TokenVerifier):
def verify(self, token):
# Return mock object that will help pass your tests.
# Or raise an error to simulate token validation failures.
Run Code Online (Sandbox Code Playgroud)
然后确保在单元测试期间您的代码使用MockTokenVerifier.
还可以创建模拟 ID 令牌,并删除 Admin SDK 的部分内容,以便auth.verify_id_token()在测试期间正常运行(请参阅SDK 的单元测试)。但我更喜欢上面的解决方案,因为它更简单、更干净,并且不需要弄乱 SDK 的内部结构。
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |