我正在尝试使用 HTTP Target 实现 Google Cloud Task 队列。我已经为 App Engine 使用了队列,但在迁移到 Cloud Run 时,我希望使用相同的队列系统。我已经实现了调度程序代码,但与 App Engine 不同,我不能信任标头,所以我知道我需要使用身份验证令牌验证请求,但我很难理解它?我也在做很多假设。我正在尝试在 PHP 中构建它,因此如果可能的话,最好在 PHP 中查看一个示例,但即使只是流程的一些 Psuedo 代码也会很有用。
我的第一个假设是最好使用 OIDC 令牌?基于:
如果您在目标服务中编写自己的代码来验证令牌,则应使用 OIDC 令牌。有关这意味着什么的更多信息,请参阅 OpenID Connect,尤其是验证 ID 令牌。
我已经阅读了这个链接的标题,但如果我说实话,它并没有让我很清楚。
其次,令牌将在 Authorization 标头中为Bearer <token>
?
第三,我想我应该使用类似包的东西firebase/php-jwt
来解码令牌。但是我该如何准确解码呢?我的服务 JSON 文件只有一个私钥,我需要从云控制台获取公钥吗?一旦我这样做了,我需要查看令牌的特定部分来验证请求吗?还是我可以将其解码为有效的 JSON 就足够了?
每次我阅读一些关于如何做到这一点的文档时,我想我越来越接近答案了,但我现在花费的时间比我想要的要长得多,而且当谷歌文档似乎很少只是指出我需要做什么。