【问题标题】:How do I authenticate with JWT using gRPC for PHP?如何使用 gRPC for PHP 通过 JWT 进行身份验证?
【发布时间】:2021-12-16 11:46:41
【问题描述】:

我已经从 proto 文件生成了我的客户端代码。现在我正在尝试连接,但从服务器获取'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();

【问题讨论】:

    标签: php authentication jwt metadata grpc


    【解决方案1】:

    试试这个

    $myServiceClient = new MyServiceClient(
        "$host:$port",
        [
            'credentials' => ChannelCredentials::createInsecure(),
            'update_metadata' => function ($metaData) use ($token) {
                $metaData['Authorization'] = 'Bearer ' . $token; 
                return $metaData;
            },
        ]
    );
    
    

    Best HTTP Authorization header type for JWT

    或者像这样:

    https://jwt.io/introduction

    Authorization: Bearer <token>
    

    【讨论】:

      【解决方案2】:

      以下对我有用:

      $myServiceClient = new MyServiceClient(
          "$host:$port",
          [
              'credentials' => ChannelCredentials::createInsecure(),
              'update_metadata' => function ($metaData) use ($token) {
                  $metaData['jwt'] = [$token];
      
                  return $metaData;
              },
          ]
      );
      

      【讨论】:

        猜你喜欢
        • 2018-06-30
        • 2022-12-22
        • 2016-06-25
        • 1970-01-01
        • 2019-06-29
        • 2019-03-08
        • 1970-01-01
        • 2016-04-07
        • 2019-03-27
        相关资源
        最近更新 更多