Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase&;邮递员|为Google Identity OAuth 2.0令牌生成JWT_Firebase_Google Cloud Platform_Jwt_Postman - Fatal编程技术网

Firebase&;邮递员|为Google Identity OAuth 2.0令牌生成JWT

Firebase&;邮递员|为Google Identity OAuth 2.0令牌生成JWT,firebase,google-cloud-platform,jwt,postman,Firebase,Google Cloud Platform,Jwt,Postman,我试图在我的云Firestore上执行一些管理任务(上传一些数据等)。我通读了这些文件 使用Google Identity OAuth 2.0令牌和服务帐户来验证来自应用程序的请求,例如数据库管理请求 这是关于如何在生成JWT后进行授权API调用的文档。我正在努力生成JWT 这就是我所尝试的: 我形成了标题和声明集 {"alg":"RS256","typ":"JWT"}. { "iss":&quo

我试图在我的云Firestore上执行一些管理任务(上传一些数据等)。我通读了这些文件

使用Google Identity OAuth 2.0令牌和服务帐户来验证来自应用程序的请求,例如数据库管理请求

这是关于如何在生成JWT后进行授权API调用的文档。我正在努力生成JWT

这就是我所尝试的:

  • 我形成了标题和声明集

    {"alg":"RS256","typ":"JWT"}.
    {
    "iss":"761326798069-r5mljlln1rd4lrbhg75efgigp36m78j5@developer.gserviceaccount.com",
    "scope":"https://www.googleapis.com/auth/prediction",
    "aud":"https://oauth2.googleapis.com/token",
    "exp":1328554385,
    "iat":1328550785
    }
    
  • 转到以使用RSA256生成JWT。它要求公钥和私钥。我知道私钥可以从我在
    https://console.cloud.google.com/iam-admin/serviceaccounts
    。但是,我不知道从哪里获得公钥。io不生成jwt。我只得到“无效签名”


  • web上有许多使用SDK或库的示例。然而,我看不到任何关于如何手动生成JWT(如果可能的话)以将其用于Postman的示例。有什么想法吗?

    多亏了@JohnHanley。我成功地生成了令牌。这并不完全是因为邮递员(我仍然依赖jwt.io来生成jwt)

  • 创建服务帐户后。添加密钥并下载p12文件(不是json)。默认密码是
    notasecret

  • 将p12转换为pem并提取公钥:
    $openssl pkcs12-in-postman-admin-private.p12-out-postman-admin-private.pem-nodes

    $openssl rsa-in postman-admin-private.pem-outform pem-pubout-out postman-admin public.pem

  • 打开两个pem文件并将私钥和公钥复制到jwt.io(使用RSA256选项)

  • 确保在
    iss
    字段中使用服务帐户的电子邮件地址

  • 以下是邮递员的请求:

    curl--位置--请求发布'https://oauth2.googleapis.com/token?grant_type=urn:ietf:params:oauth:grant-类型:jwt承载和断言=“{generated jwt}”


  • 下一步是完全在邮递员的范围内完成。我没有试过,但这似乎是一个选项,多亏了@JohnHanley。我成功地生成了令牌。这并不完全是因为邮递员(我仍然依赖jwt.io来生成jwt)

  • 创建服务帐户后。添加密钥并下载p12文件(不是json)。默认密码是
    notasecret

  • 将p12转换为pem并提取公钥:
    $openssl pkcs12-in-postman-admin-private.p12-out-postman-admin-private.pem-nodes

    $openssl rsa-in postman-admin-private.pem-outform pem-pubout-out postman-admin public.pem

  • 打开两个pem文件并将私钥和公钥复制到jwt.io(使用RSA256选项)

  • 确保在
    iss
    字段中使用服务帐户的电子邮件地址

  • 以下是邮递员的请求:

    curl--位置--请求发布'https://oauth2.googleapis.com/token?grant_type=urn:ietf:params:oauth:grant-类型:jwt承载和断言=“{generated jwt}”


  • 下一步是完全在邮递员的范围内完成。我没有尝试过,但这似乎是一种选择

    我写了一篇文章,展示了如何创建JWT,签名,然后交换访问令牌。这也将解释所需的步骤。您可以使用openssl
    openssl rsa-in private.pem-outform pem-pubout-out public.pem从私钥中轻松获取公钥。但是,Google使用公钥来验证您的私钥签名,您不需要它。下面是创建访问令牌的快捷方式:@JohnHanley非常感谢。这把我推向了正确的方向。我现在设法生成了访问令牌。我将在答案中写下这些步骤,以供将来参考。我写了一篇文章,展示了如何创建JWT,对其进行签名,然后交换访问令牌。这也将解释所需的步骤。您可以使用openssl
    openssl rsa-in private.pem-outform pem-pubout-out public.pem从私钥中轻松获取公钥。但是,Google使用公钥来验证您的私钥签名,您不需要它。下面是创建访问令牌的快捷方式:@JohnHanley非常感谢。这把我推向了正确的方向。我现在设法生成了访问令牌。我将在答案中写下步骤,以备将来参考