3

这就是我正在做的

我第一次打电话来获取令牌

$client->request('POST', '/api/login_check', [], [],
        ['CONTENT_TYPE' => 'application/json'],
        json_encode(
            [
                "username" => $user->getUsername(),
                "password" => 'password',
            ]
        )
    );

    $response = $client->getResponse();
    return json_decode($response->getContent())->token;

然后第二个使用它

        $client->request('GET', '/api/my_endpoint', [], [], [
            'headers' => [
                'Authorization' => $token
            ]
        ]);

$token 是一个有效的令牌(使用邮递员测试),例如“Bearer SUPERLONGSTRING”,但我收到错误消息

JWT Token not found

谢谢

4

2 回答 2

4
 $client->request('GET', '/api/my_endpoint', [], [], [
                 'HTTP_AUTHORIZATION' => "{$token}",
                 'CONTENT_TYPE' => 'application/ld+json',
                 'HTTP_ACCEPT' => 'application/ld+json'
        ]);

您应该HTTP_AUTHORIZATION为此使用标题。试试上面的代码。此外,您不需要标题的嵌套数组。

此外,由于我们看不到您的令牌格式,请记住不记名格式是:

Bearer(空间)令牌的其余部分。

于 2019-04-08T08:25:05.053 回答
1
    $client->request('GET', '/api/my_endpoint', [], [], [
        'headers' => [
            'Authorization' => 'bearer '.$token
        ]
    ]);
于 2019-04-08T23:59:15.470 回答