Маршрут API входа всегда возвращает 200

Я создал Laravel API, который используется интерфейсом Vue. Он отлично работает локально, теперь я развернул его на промежуточном сервере, и мой маршрут /login не работает - он возвращает статус 200 без текста ответа, независимо от того, верны ли учетные данные или нет, текст ответа должен содержать access_token или ошибка в JSON.

Мой процесс заключался в развертывании с помощью git, использовании композитора для настройки зависимостей, настройке mySQL, настройке файла .env, переносе базы данных, запуске php artisan passport:install, повторной настройке файла .env с использованием секрета и идентификатора клиента, создании пользователя с tinker, используя Почтальон, я попал в конечную точку /oauth/token с необходимыми данными, и я успешно получил токен на предъявителя, я могу нажать на /user с токеном на предъявителя и получить соответствующего пользователя. Пытаясь войти в систему через Postman или Vue, я обнаружил, что проблема была указана ранее.

Вот сетевая вкладка запроса.

Маршрут API входа всегда возвращает 200

AuthController.php

public function login(Request $request) 
{
    $http = new \GuzzleHttp\Client;

    try {
        $response = $http->post(config('services.passport.login_endpoint'), [
            'form_params' => [
                'grant_type' => 'password',
                'client_id' => config('services.passport.client_id'),
                'client_secret' => config('services.passport.client_secret'),
                'username' => $request->username,
                'password' => $request->password,
            ]
         ]);
         return json_decode((string) $response->getBody(), true);

     } catch (\GuzzleHttp\Exception\BadResponseException $e) {
            if ($e->getCode() === 400) {
                return response()->json('Invalid Request. Please enter a username or a password.', $e->getCode());
            } else if ($e->getCode() === 401) {
                return response()->json('Your credentials are incorrect. Please try again', $e->getCode());
            }
            return response()->json('Something went wrong on the server.', $e->getCode());
     }
}

Для отладки установлено значение true, я проверил в журнале, и единственная ошибка:

[2018-07-19 13:12:01] production.ERROR: The resource owner or authorization server denied the request. {"exception":"[object] (League\\OAuth2\\Server\\Exception\\OAuthServerException(code: 9): T$
[stacktrace]

Однако после поиска в Google я не знаю, актуально ли это. Как мне лучше отладить это? Кто-нибудь знает решение, любые указатели были бы очень признательны.

используйте $e->getStatusCode() вместо $e->getCode()

rkj 19.07.2018 17:40

Спасибо, что нашли время помочь, я внес изменения, но до сих пор не получаю текст ответа

CalAlt 19.07.2018 17:48

это означает, что ваш код не содержит ошибок, а $response->getBody() пуст

rkj 19.07.2018 17:52

Есть ли у вас какие-либо предложения, как выяснить, почему это так?

CalAlt 19.07.2018 18:46

у вас может быть что-то несоответствие на вашем сервере. если вы используете свой собственный api, вы можете использовать personal token, проверьте этот stackoverflow.com/questions/50848892/…

rkj 20.07.2018 06:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
519
0

Другие вопросы по теме