2

在使用 Phpunit 和 Symfony 测试我的端点时,我遇到了一些麻烦。问题是当我使用 nelmio api doc 进行测试时,使用邮递员,甚至从 android 中的客户端进行测试时,我能够正确地进行身份验证。

但是,当我尝试使用 phpunit 测试端点时,我收到 401 Unauthorized 消息。

这是我从 phpunit 中的功能测试中提出的请求:

$this->client->request('POST', '/api/v1/recipes',$data,array(),array(),$header);

这是标题的内容:

$header = array(
        'Authorization'=> 'Bearer '.$token,
        'CONTENT_TYPE' => 'application/json',
    );

我也尝试使用 HTTP_AUTHORIZATION 键,但也不起作用。

我使用内置的 Symfony 服务器,我不确定这是否重要,因为我在使用标头和在 Apache 下工作时遇到了一些其他问题。

顺便说一句,当我用 jwt.io 在线解码器仔细检查时,令牌是正确形成的。

我有点绝望,任何帮助都会很棒。

4

1 回答 1

1

尝试改变这一点:

$header = array(
    'Authorization'=> 'Bearer '.$token,
    'CONTENT_TYPE' => 'application/json',
);

对此:

$header = array(
   'HTTP_Authorization' => sprintf('%s %s', 'Bearer', $token),
   'HTTP_CONTENT_TYPE' => 'application/json',
   'HTTP_ACCEPT'       => 'application/json',
);
于 2017-06-29T16:47:08.097 回答