nexmo / jwt
用于为 Nexmo/Vonage API 创建 JWT 的独立包
Requires
- lcobucci/jwt: ^3.3
- ramsey/uuid: ^3.9
Requires (Dev)
- phpstan/phpstan: ^0.12.25
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.5
README
此库需要至少 PHP 版本 7.1
这是用于生成 JWT 的 PHP 库,以用于 Nexmo 的 API。要使用此库,您需要一个 Nexmo 账户。在 nexmo.com 上免费 注册。
安装
要使用客户端库,您需要 创建一个 Nexmo 账户。
要将 PHP 客户端库安装到您的项目中,我们建议使用 Composer。
composer require nexmo/jwt
您不需要克隆此存储库即可在您的项目中使用此库。使用 Composer 从 Packagist 安装它。
如果您对 Composer 不熟悉,以下是一些可能对您有用的资源
- Composer 入门页面 来自 Composer 项目文档。
- Composer 初学者指南 来自 ScotchBox 的好心人。
用法
如果您正在使用 Composer,请确保自动加载器包含在您的项目引导文件中
require_once "vendor/autoload.php";
使用您想要访问的 Nexmo 应用程序的 Application ID 和私有密钥创建令牌生成器
$generator = new Nexmo\JWT\TokenGenerator('d70425f2-1599-4e4c-81c4-cffc66e49a12', file_get_contents('/path/to/private.key'));
然后,您可以通过在令牌生成器上调用 generate()
方法来检索生成的 JWT 令牌
$token = $generator->generate();
这将返回一个字符串令牌,可以用于需要 JWT 的 Nexmo API 的 Bearer 认证
示例
生成具有特定生存期的令牌
默认情况下,Nexmo JWT 令牌在生成后具有 15 分钟的生存期,或 TTL。在令牌生命周期应不同的情况下,您可以通过在令牌生成器上调用 setTTL()
方法并传递令牌应有效的秒数来覆盖此设置
$generator->setTTL(30 * 60); // Set expiration to 30 minutes after token creation
设置 ACL
Nexmo JWT 默认对应用程序的所有路径具有完全访问权限,但这可能不适合需要受限访问的情况。您可以通过使用 setPaths()
或 addPath()
方法来设置 JWT 令牌有效的路径信息,或在更流畅的接口中添加单个路径。
// Set paths in bulk $generator->setPaths([ '/*/users/**', '/*/conversations/**' ]); // Set paths individually $generator->addPath('/*/users/**'); $generator->addPath('/*/conversations/**');
有关分配 ACL 信息的更多信息,请参阅 如何在 Nexmo 开发平台上生成 JWT
贡献
此库正在积极开发中,我们很高兴听取您的意见!请随时 创建一个问题 或 打开一个拉取请求,并提出您的问题、评论、建议和反馈。