Я сталкиваюсь с проблемой CORS? - PullRequest
0 голосов
/ 22 октября 2018

Я следовал этому руководству по настройке Laravel & Laravel Passport.Чтобы проверить вызовы моего API, я использовал этот тестовый клиент в другом каталоге на моем сервере:

<?php

require "vendor/autoload.php";

$client = new GuzzleHttp\Client;

try {
    $response = $client->post('http://todos.test/oauth/token', [
    'form_params' => [
        'client_id' => 2,
        // The secret generated when you ran: php artisan passport:install
        'client_secret' => 'fx5I3bspHpnuqfHFtvdQuppAzdXC7nJclMi2ESXj',
        'grant_type' => 'password',
        'username' => 'johndoe@scotch.io',
        'password' => 'secret',
        'scope' => '*',
    ]
]);

// You'd typically save this payload in the session
$auth = json_decode( (string) $response->getBody() );

$response = $client->get('http://todos.test/api/todos', [
    'headers' => [
        'Authorization' => 'Bearer '.$auth->access_token,
    ]
]);

$todos = json_decode( (string) $response->getBody() );

$todoList = "";
foreach ($todos as $todo) {
    $todoList .= "<li>{$todo->task}".($todo->done ? '✅' : '')."</li>";
}

echo "<ul>{$todoList}</ul>";

} catch (GuzzleHttp\Exception\BadResponseException $e) {
   echo "Unable to retrieve access token.";
}

Это сработало, и оба запроса дали правильный ответ.Однако, когда я помещаю этот код в новое собственное приложение реагирования (конечно, в javascript), первый запрос возвращает 200 и возвращает мне секрет клиента.

Теперь, когда я делаю второй вызов, я получаюошибка: 401 Unauthorized.Мне было интересно, связано ли это с CORS или я смотрю в неправильном направлении?

1 Ответ

0 голосов
/ 23 октября 2018

нет!это не проблема CORS, вы просто не авторизованы, проверьте ваш access_token, если он действителен и не истек.

...