Почему мой паспорт laravel перестал работать при переходе на vagrant со встроенного сервера?

Поэтому мне пришлось реализовать вход в Facebook, для которого требуется https-соединение, прежде чем я использовал php artisan serve, но он разрешает только HTTP, теперь я решил перенести весь проект на vagrant. Все работает нормально, кроме паспорта.

Я проверил и обнаружил, что эти две строки вызывают внутреннюю ошибку 500.

auth()->attempt($loginData, true);

auth()->user()->createToken('authToken')->accessToken;

при удалении я не получаю ошибки. Вся моя функция входа в систему выглядит так:

    public function login(Request $request)
    {
        $loginData = $request->validate([
            'name' => 'required',
            'password' => 'required'
        ]);

       $a = auth()->attempt($loginData, true);
        if(!$a) {
            return response(['message'=>'Invalid credentials', 'auth' => false]);
        }
        $accessToken = auth()->user()->createToken('authToken')->accessToken;
        return response(['user' => auth()->user(), 'access_token' => $accessToken, 'auth' => true, "attempt" => $a, "auth()" => auth()]);
    }

Кроме того, я создал пользователей через tinker, токены и пользователи были сохранены.

вот мои данные бд

mysql> select * from users;
+----+-------+--------------------------------------------------------------+----------------+---------------------+---------------------+
| id | name  | password                                                     | remember_token | created_at          | updated_at          |
+----+-------+--------------------------------------------------------------+----------------+---------------------+---------------------+
|  1 | admin | $2y$10$V8fM6Vvc7xOJxN/LPyImUeQNzG9/k3tSsaF8qf1NsxrzK9B3VPmsa | NULL           | 2019-08-26 15:22:02 | 2019-08-26 15:22:02 |
|  2 | demis | $2y$10$oRvcL0ZC2NQuGXE446GhfO1KBcAw3h8d/TGQmODL/AFHnat1I.Yvq | NULL           | 2019-08-26 15:45:27 | 2019-08-26 15:45:27 |
+----+-------+--------------------------------------------------------------+----------------+---------------------+---------------------+
2 rows in set (0.00 sec)

mysql> select * from oauth_access_tokens;
+----------------------------------------------------------------------------------+---------+-----------+-----------+--------+---------+---------------------+---------------------+---------------------+
| id                                                                               | user_id | client_id | name      | scopes | revoked | created_at          | updated_at          | expires_at          |
+----------------------------------------------------------------------------------+---------+-----------+-----------+--------+---------+---------------------+---------------------+---------------------+
| 2e82923d6fdc1cc98580b683952b7b96d555e67d6b7e06b8080f8a55227b6c1d7a755fc21b570941 |    NULL |         1 | authToken | []     |       0 | 2019-08-26 15:21:52 | 2019-08-26 15:21:52 | 2020-08-26 15:21:52 |
| 610f8fd1f2212ab257810de88605bff4e419f26477bcf63f8dfe20018d9bcf74797bb9c817d6450a |    NULL |         1 | authToken | []     |       0 | 2019-08-26 15:45:19 | 2019-08-26 15:45:19 | 2020-08-26 15:45:19 |
+----------------------------------------------------------------------------------+---------+-----------+-----------+--------+---------+---------------------+---------------------+---------------------+

Что не так, почему я не могу войти в систему, может быть, что-то не так с конфигурацией?


person Lizard Derad    schedule 26.08.2019    source источник


Ответы (1)


Запустите php artisan passport:install на новом сервере.

person rkg    schedule 27.08.2019
comment
Я сделал это, то же самое, теперь я думаю, что это не работает, потому что мой ssl-сертификат самоподписан, и google выдает ошибку при использовании axios. - person Lizard Derad; 27.08.2019
comment
@LizardDerad, случайно, вы не пробовали использовать другие SSL-сертификаты? И, кстати, SSL-сертификаты не должны влиять на axios. - person rkg; 28.08.2019
comment
Да, я сделал, однако проблема не в запросе API, а в соединении с MySQL. Я не знаю почему, но laravel homestead хочет, чтобы DB_HOST='localhost' вместо DB_HOST='127.0.0.1' находился в файле .env. Также я не знаю, как мне удалось создать записи с помощью tinker на хосте 127.0.0.1, а не с веб-страницы. Впервые использую vagrant, и это сбивает с толку - person Lizard Derad; 29.08.2019
comment
Один ответ на другой вопрос гласит: Возможно, у вас есть пользователь базы данных, который может войти в систему, используя локальный хост, а не 127.0.0.1. Проверьте таблицу mysql.users для проверки. Вы можете добавить запись для 127.0.0.1 для подключения к любому из них. stackoverflow.com/questions/48343409/ @LizardDerad - person rkg; 30.08.2019
comment
Да, это так - person Lizard Derad; 30.08.2019