1

Guzzle-HTTP の Bearer-Authorization に問題があります。これを使用して、PHP-REST-API を PHPUnit でテストします。

ここに私のテスト方法があります:

 public function testGetMe()
{
    $client = new Client([
        'base_uri' => $this->apiBaseURL
    ]);        
    $data = ['email' => $email, 'password' => '12345'];
    $client->post('register', [
            'form_params' => $data]
    );
    $responseJson = json_decode($response->getBody());
    $myToken = $responseJson->data->token;

    $response = $client->request('GET', 'users', [
        'headers' => [
            'Authorization'      => 'Bearer '.$myToken
        ],
        'debug' => true
    ]);
}

しかし、次のようにハードコードされたトークンを設定すると:

 public function testGetMe()
{
    $client = new Client([
        'base_uri' => $this->apiBaseURL
    ]);        
    $data = ['email' => $email, 'password' => '12345'];
    $client->post('register', [
            'form_params' => $data]
    );
    $responseJson = json_decode($response->getBody());
    $myToken = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjQ5NzExMzQsImp0aSI6IjByR3FpOW15Rm1rRGo2TU9sMVhkK3dRU3p1V0pWejM1UEhiU2dTMmg5SEU9IiwiaXNzIjoiQXBwTmFtZSIsIm5iZiI6MTQ2NDk3MTE0NCwiZXhwIjoxNDY0OTczMTQ0LCJzdWIiOiJ0ZXN0QG1haWwuZGUifQ.yA4a_S6ILCeqENm00H712g9uF5g9eSz_BmnaMDdZ2r4p5e1q88g0T09IG2WKCi1oExoBfQ8VTmKeX6ZQv0RydQ;

    $response = $client->request('GET', 'users', [
        'headers' => [
            'Authorization'      => 'Bearer '.$myToken
        ],
        'debug' => true
    ]);
}

また、Postmanでも機能しています。これは、REST-API から受け取ったトークンと同じです。

何が悪いのか考えはありますか?

4

0 に答える 0