(Это не дубликат Laravel 5.3 Персональный токен доступа 500. Проблема с созданием токена, но у меня нет проблем с созданием токена, мой токен просто не принимается при аутентификации)
У меня есть настройка с использованием laravel / паспорта на apache. Я выполнил процедуру установки в https://laravel.com/docs/5.7/passport#installation, а также создал смешанное приложение. Часть использует стандартный laravel, а есть сложный компонент, использующий vue + vuex. Моя аутентификация работает следующим образом: я использую стандартную веб-аутентификацию laravel, и при входе пользователя в систему я создаю новый токен личного доступа.
Когда компонент vue создан, он успешно извлекает токен, используя:
window.axios.get(`/oauth/personal-access-tokens`)
Когда я запрашиваю api, я передаю токен:
axios.defaults.headers.common['Authorization'] = 'Bearer '+context.rootState.user.token;
axios.defaults.headers.common['Accept'] = 'application/json';
window.axios.get(`/api/userfavs`)...
Полный заголовок
Accept application/json
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Authorization Bearer 43c7fbc2b96d67d36749ad6…cf6692eb7d21dbc15d4196c1212bd
Cache-Control max-age=0
Connection keep-alive
Cookie XSRF-TOKEN=eyJpdiI6IkNrNSswZER…jOTA5MTA3ZjMxOTk4NWEifQ%3D%3D
Host localhost
Referer http://localhost/vegbed/1/edit
User-Agent Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/64.0
X-CSRF-TOKEN tbVdEArmqXzdEGGwwd2eYFnL0gwKs4dW01aSrKz1
X-Requested-With XMLHttpRequest
X-XSRF-TOKEN eyJpdiI6IkNr
Маршрут:
Route::get('userfavs/','Api\UserFavController@index')->middleware('auth:api');
Ответ такой:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'api_token' in 'where clause' (SQL: select * from
userswhereapi_token= 43c7fbc2b96d67d36749ad6df2278e4e69d755909dfc2de3400cf6692eb7d21dbc15d4196c1212bd limit 1)
Вот как выглядит мой auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
Возможный дубликат Laravel 5.3 Персональный токен доступа 500
Я думаю, это не имеет ничего общего с другим вопросом. Я вижу ошибку SQL, точно нет столбца api_token в столбце users, в oauth_access_tokens есть строка api_token. Но я не знаю, зачем он делает этот глупый запрос.
Какую версию Laravel вы используете? Не могли бы вы также включить в свой вопрос содержимое вашего файла config/auth.php?
Только что обновил вопрос, пользуюсь версией 5.7






laravel используйте api_token, если вы пишете токен in guard в своем config.php, вам нужно поле api_token в вашей таблице, если вы используете токен в своей защите api.
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
]
поэтому, если вы хотите использовать паспорт, измените драйвер в API на паспорт следующим образом:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
]
когда после изменения на паспорт по-прежнему появляется та же ошибка, сначала очистите свое приложение с помощью мастера. очистить кеш, конфигурацию и просмотреть ..
Соответственно, у меня был файл auth.php. Я очистил свой laravel с помощью php artisan view: clear php artisan config: cache php artisan cache: clear. Кажется, что 500 больше нет, но аутентификация не работает (401)
Покажите нам ошибку Laravel либо из ответа, либо из
laravel.log. Это ошибка сервера, код внешнего интерфейса не особо полезен