firebase / token-generator
一个简单的库,用于生成用于认证 Firebase 的 JWT 令牌。
Requires
- php: >=5.4
- firebase/php-jwt: ^3.0
Requires (Dev)
- phpunit/phpunit: ^4.6.0
This package is not auto-updated.
Last update: 2020-01-20 09:05:45 UTC
README
此存储库已被存档,不再维护。
Firebase Token Generator - PHP
警告:此令牌生成器与 Firebase SDK 的 1.x.x 和 2.x.x 版本兼容。如果您使用的是 3.x.x SDK,请参阅以下文档:这里。
Firebase 自定义登录 允许您通过使用安全的 JSON Web Tokens (JWTs) 来完全控制用户认证。这些令牌中存储的认证有效载荷可用于您 Firebase 的 安全规则。这是一个 PHP 令牌生成器库,允许您轻松创建这些 JWTs。
依赖项
Firebase PHP 令牌生成器库依赖于 PHP-JWT。
关于安全性的说明
重要:由于令牌生成需要您的 Firebase 密钥,您应在 受信任的服务器 上生成令牌。切勿将 Firebase 密钥直接嵌入到您的应用程序中,也永远不要与连接的客户端共享您的 Firebase 密钥。
安装
使用 composer
composer require firebase/token-generator
生成令牌
要生成令牌,您需要您的 Firebase 密钥,您可以通过在浏览器中输入您的 Firebase URL 并点击左侧导航菜单中的“Secrets”选项卡来找到它。
一旦您已下载库并获取了 Firebase 密钥,您可以使用以下 PHP 代码片段生成令牌
use Firebase\Token\TokenException; use Firebase\Token\TokenGenerator; try { $generator = new TokenGenerator('<YOUR_FIREBASE_SECRET>'); $token = $generator ->setData(array('uid' => 'exampleID')) ->create(); } catch (TokenException $e) { echo "Error: ".$e->getMessage(); } echo $token;
传递给 setData()
的有效载荷可以通过 auth
变量 在您的安全规则中使用。这是您将可信的认证详细信息(例如客户端的用户 ID)传递到 Firebase 安全规则的方式。有效载荷可以包含您选择的任何数据,但它必须包含一个“uid”键,该键必须是小于 256 个字符的字符串。生成的令牌的总长度必须小于 1024 个字符。
令牌选项
可以设置令牌选项来修改 Firebase 如何处理令牌。可用选项包括
-
expires(数字或 DateTime)- 表示令牌不再有效的日期和时间戳(自纪元以来的秒数)或一个
DateTime
。 -
notBefore(数字或 DateTime)- 表示服务器应拒绝此令牌的日期和时间戳(自纪元以来的秒数)或一个
DateTime
。 -
admin (布尔值) - 将其设置为
True
以禁用此客户端的所有安全规则。这将使客户端能够读取和写入您整个 Firebase 数据库。 -
debug (布尔值) - 设置为
True
以启用安全规则中的调试输出。通常情况下,您 不应 在生产环境中将其设置为True
(因为这会减慢规则实现速度,并让您的用户看到您的规则),但它对于调试可能很有帮助。
以下是如何设置选项的示例
use Firebase\Token\TokenGenerator; $generator = new TokenGenerator('<YOUR_FIREBASE_SECRET>'); // Using setOption() $token = $generator ->setOption('admin', true) ->setOption('debug', true) ->setData(array('uid' => 'exampleID')) ->create(); // Using setOptions() $token = $generator ->setOptions(array( 'admin' => true, 'debug' => true )) ->setData(array('uid' => 'exampleID')) ->create();
变更日志
3.0.0 - 2015-11-18
- 更新 PHP-JWT 至 >= 3.0
- 删除已弃用的
Services_FirebaseTokenGenerator
并更新测试 - 感谢 @jeromegamez 对上述贡献!
2.1.0 - 2015-06-22
- 更新最低要求的 PHP 版本至 >= 5.4。
- 包括 API 改进在内的主要包重写,感谢 @jeromegamez!
2.0.1 - 2015-04-02
- 更具体地指定 PHP-JWT 版本。
2.0.0 - 2014-09-15
- 添加额外的验证以确保令牌包含 "uid" 字段,除非它们已将 "admin" 选项设置为
true
。
1.0.0 - 2014-09-04
- 初始发布