gpt4 book ai didi

validation - 聊天机器人 : how to validate incoming requests from google hangouts

转载 作者:行者123 更新时间:2023-12-03 17:13:38 24 4
gpt4 key购买 nike

我们已经整合了一个谷歌环聊聊天机器人,为我们的团队提供一些方便的功能。机器人属于“机器人 URL”种类,这意味着环聊将请求发送到应用端点,我们的应用会做出适当的响应。目前,我们正在努力验证来自谷歌的传入请求。每个请求在 Authentication header 中都有一个不记名 token ,但该 JWT token 不会验证。两个php客户端库[https://github.com/googleapis/google-api-php-client]和在线验证器 [ https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=]返回错误“无效签名”

谷歌客户端 php 库的 Google_AccessToken_Verify 类有一个 verifyIdToken 方法,我们在本示例中使用该方法 [https://github.com/GoogleCloudPlatform/php-docs-samples/blob/master/auth/src/auth_cloud_explicit.php]] .我们将服务帐户 key 文件的路径和项目 ID 传递给 google 客户端构造函数。然后我们将传入请求的不记名 token 传递给 verifyIdToken 方法。

use Google_Client;

// inside a laravel controller with $request in scope

$bearer_token = $request->bearerToken();
$keyPath = FILE_LOCATION

$client = new Google_Client([
'keyFilePath' => $keyPath,
'projectId' => GCP_CLIENT_ID
]);

$payload = $client->verifyIdToken($bearer_token);

if(!empty($payload)){

return $this->call(ParseGoogleChatRequest::class, [$request]);

}else{

\Log::debug('bad token');

}


我希望谷歌客户端库能够验证谷歌 JWT。这个 github 问题 [ https://github.com/firebase/php-jwt/issues/175]反射(reflect)了我们实现这种方法的经验。我想获得一些关于我们应该使用哪种方法的一般指导。

最佳答案

我在 another SO question 的帮助下找到了一个可接受的解决方案.谷歌客户端库已经导入了 firebase/php-jwt,所以我从我链接到的问题中遵循了与 Jed 相同的思路。从 token 中提取 KID,我用它来识别正确的公钥 from this url .然后我实例化了 php-jwt 库并在其上调用了 decode 方法,传递了所需的参数。 decode 方法还会验证签名并在成功时返回 JWT 的组件。

关于validation - 聊天机器人 : how to validate incoming requests from google hangouts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56794199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com