firebase/token-generator

该包已被废弃,不再维护。未建议替代包。

一个简单的库,用于生成用于认证 Firebase 的 JWT 令牌。

v3.0.0 2015-11-19 06:18 UTC

This package is not auto-updated.

Last update: 2020-01-20 09:05:45 UTC


README

此存储库已被存档,不再维护。

status: inactive

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

2.0.1 - 2015-04-02

  • 更具体地指定 PHP-JWT 版本。

2.0.0 - 2014-09-15

  • 添加额外的验证以确保令牌包含 "uid" 字段,除非它们已将 "admin" 选项设置为 true

1.0.0 - 2014-09-04

  • 初始发布