Nexmo错误Builder#withClaim()用于未注册的索赔,请查看如何设置索赔"子"的文档



我无法从提供的声明中生成jwt。这是我的代码:

$keypair = new VonageClientCredentialsKeypair(file_get_contents(storage_path('voip/vonage/private.key')), env('NEXMO_APPLICATION_ID'));
$client = new VonageClient($keypair);
$claims = [
'exp' => strtotime(date('Y-m-d', strtotime('+24 Hours'))),
'sub' => 'apg-cs',
'acl' => [
'paths' => [
'/*/users/**' => (object) [],
'/*/conversations/**' => (object) [],
'/*/sessions/**' => (object) [],
'/*/devices/**' => (object) [],
'/*/image/**' => (object) [],
'/*/media/**' => (object) [],
'/*/applications/**' => (object) [],
'/*/push/**' => (object) [],
'/*/knocking/**' => (object) [],
'/*/legs/**' => (object) [],
]
],
];
$token = $client->generateJwt($claims);
return $token->toString();

错误:

Builder#withClaim() is meant to be used for non-registered claims, check the documentation on how to set claim "sub"

当我删除"子"从声明中,vonage将抛出错误:

user:error:invalid-user

这是一个bug。我们使用的JWT库在v3和v4之间改变了很多东西,这个看起来就是其中之一。由于Conversation API仍被认为是测试版,因此没有检查此兼容性,但我会确保它可以工作。

我已经在https://github.com/Vonage/vonage-php-sdk-core/issues/276c上打开了一个github问题,并将尽快解决这个问题。

最新更新