如何使用 gRPC 对 JWT 进行身份验证 PHP?
How do I authenticate with JWT using gRPC for PHP?
我已经从原型文件生成了我的客户端代码。现在我正在尝试连接,但从服务器收到 'jwt' is not located at the context
错误。这是我的做法:
$myServiceClient = new MyServiceClient(
"$host:$port",
[
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($token) {
// $metaData['authorization'] = ['jwt' . $token]; // doesn't work
// $metaData['authorization']['jwt'] = $token; // doesn't work
// $metaData['jwt'] = $token; // doesn't work
$metaData['authorization'] = ['Bearer ' . $token]; // doesn't work
return $metaData;
},
]
);
$unaryCall = $myServiceClient->MyMethod(new MyMethodRequest());
$wait = $unaryCall->wait();
试试这个
$myServiceClient = new MyServiceClient(
"$host:$port",
[
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($token) {
$metaData['Authorization'] = 'Bearer ' . $token;
return $metaData;
},
]
);
或者像这样:
Authorization: Bearer <token>
以下对我有用:
$myServiceClient = new MyServiceClient(
"$host:$port",
[
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($token) {
$metaData['jwt'] = [$token];
return $metaData;
},
]
);
我已经从原型文件生成了我的客户端代码。现在我正在尝试连接,但从服务器收到 'jwt' is not located at the context
错误。这是我的做法:
$myServiceClient = new MyServiceClient(
"$host:$port",
[
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($token) {
// $metaData['authorization'] = ['jwt' . $token]; // doesn't work
// $metaData['authorization']['jwt'] = $token; // doesn't work
// $metaData['jwt'] = $token; // doesn't work
$metaData['authorization'] = ['Bearer ' . $token]; // doesn't work
return $metaData;
},
]
);
$unaryCall = $myServiceClient->MyMethod(new MyMethodRequest());
$wait = $unaryCall->wait();
试试这个
$myServiceClient = new MyServiceClient(
"$host:$port",
[
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($token) {
$metaData['Authorization'] = 'Bearer ' . $token;
return $metaData;
},
]
);
或者像这样:
Authorization: Bearer <token>
以下对我有用:
$myServiceClient = new MyServiceClient(
"$host:$port",
[
'credentials' => ChannelCredentials::createInsecure(),
'update_metadata' => function ($metaData) use ($token) {
$metaData['jwt'] = [$token];
return $metaData;
},
]
);