生成签名的firebase身份验证令牌的实用程序

firebase-token-generator的Python项目详细描述


#firebase令牌生成器-python

[firebase自定义登录](https://www.firebase.com/docs/web/guide/simple login/custom.html)
允许您使用安全的json web令牌(jwts)对用户进行身份验证,从而完全控制用户身份验证。存储在这些令牌中的身份验证有效负载可用于firebase[安全规则](https://www.firebase.com/docs/security/api/rule/)。
这是一个用于python的令牌生成器库,允许您轻松创建那些jwt。



pip:

`` bash
$pip安装firebase令牌生成器
````

有关安全性的说明

**重要:*由于令牌生成需要firebase机密,因此您只应在*受信任的服务器*上生成
令牌。永远不要将您的firebase机密直接嵌入到应用程序中,也不要将您的firebase机密与连接的客户端共享。



您将需要您的firebase机密,您可以在浏览器中输入您的firebase
url,然后单击左侧导航菜单上的“机密”选项卡来找到它。

下载库并获取firebase机密后,您可以用
>这段python代码生成一个令牌,这段python代码:


``python
``python
``python
``从firebase_token_token_token generator import-create_token

auth_payload={“uid”:“1”,“auth_数据”:“foo”,“other_auth_数据”:“bar”

token=create_token token(“<;您的firebase_secret>;”,auth_secrete_payload>;”,aut是可通过[`auth`变量](https://www.firebase.com/docs/security/api/rule/auth.html)在
安全规则中使用。
这是将受信任的身份验证详细信息(例如客户端的用户ID)传递给您的firebase安全规则的方式。有效负载可以包含您选择的任何数据,但是它必须包含一个“uid”键,该键必须是小于256个字符的字符串。生成的令牌在
总计中必须少于1024个字符。




可用的选项有:

**expires**(int或datetime)-时间戳(作为从epoch开始的秒数)或“datetime”
表示此令牌不再有效的时间。

**notbefore**(int或datetime)-时间戳(作为从epoch开始的秒数)或“datetime”
表示在此之前的时间服务器应拒绝此令牌。

**admin**(bool)-如果要禁用此客户端的所有安全规则,请设置为“true”。这将为客户端提供对整个firebase的读写访问。

**debug**(bool)-设置为“true”以启用安全规则的调试输出。通常情况下,您应该在生产环境中将此设置保留为“true”(因为它会减慢规则的实现速度,并让您的用户可以看到您的规则),但这有助于调试。

**simulate**(bool)-如果为“true”,firebase将运行安全规则,但不会实际更改任何数据。请注意,这只是暂时的内部设置。

下面是如何使用第二个“options”参数的示例:

``python
from firebase_token_generator import create_token

options={“admin”:true}
token=create_token(“<;您的“firebase_secret>;”,身份验证负载,选项)
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”