如何使用 phpunit 和 Liip 传递不记名令牌以测试 API
How to pass bearer token to test API using phpunit and Liip
这就是我正在做的
我先打电话获取令牌
$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
谢谢
$client->request('GET', '/api/my_endpoint', [], [], [
'HTTP_AUTHORIZATION' => "{$token}",
'CONTENT_TYPE' => 'application/ld+json',
'HTTP_ACCEPT' => 'application/ld+json'
]);
您应该为此使用 HTTP_AUTHORIZATION
header。试试上面的代码。此外,您不需要 header 的嵌套数组。
此外,由于我们看不到您的令牌格式,请记住不记名格式为:
不记名 (space) 令牌的其余部分。
$client->request('GET', '/api/my_endpoint', [], [], [
'headers' => [
'Authorization' => 'bearer '.$token
]
]);
这就是我正在做的
我先打电话获取令牌
$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
谢谢
$client->request('GET', '/api/my_endpoint', [], [], [
'HTTP_AUTHORIZATION' => "{$token}",
'CONTENT_TYPE' => 'application/ld+json',
'HTTP_ACCEPT' => 'application/ld+json'
]);
您应该为此使用 HTTP_AUTHORIZATION
header。试试上面的代码。此外,您不需要 header 的嵌套数组。
此外,由于我们看不到您的令牌格式,请记住不记名格式为:
不记名 (space) 令牌的其余部分。
$client->request('GET', '/api/my_endpoint', [], [], [
'headers' => [
'Authorization' => 'bearer '.$token
]
]);