【问题标题】:laravel auth:api returns SQLSTATE[42S22]: Column not found: 1054laravel auth:api 返回 SQLSTATE[42S22]: 找不到列: 1054
【发布时间】:2020-05-15 13:41:01
【问题描述】:

邮递员重新调整此错误

Illuminate\Database\QueryException: SQLSTATE[42S22]: 未找到列: 1054 'where 子句'中的未知列'api_token'(SQL:select * from users 其中api_token = B6eJj892tHBKvX186BYZgmqqqG8Iz4npy85ArvJS80boCT4UYNBD5CGDIdG6Dm5nlSi83cY3n0XTvsxj 并且users.deleted_at 是文件中的空限制 1) /var/www/html/myapp/vendor/laravel/framework/src/Illuminate/Database/Connection.php 在第 669 行

我表中的列名是令牌。我还在config/auth.php中配置了我的storage_key

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'storage_key' => 'token',
            'input_key' => 'token',
            'hash' => false,
        ],
    ],

我的 ApiController.php 有这个代码

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ApiController extends Controller
{

    public function __Construct() {
        $this->middleware('auth:api');
    }

    public function user(Request $request) {
        return $request->user();
    }
}

而我的 api.php 有

Route::get('user', 'ApiController@user');

我以这种方式调用我的 api http://localhost:8000/api/user?token=myGeneratedToken

【问题讨论】:

  • 您的用户表中没有 api_token 列请创建迁移并更新用户表并设置 api_token,或者如果您选择使用不同的列名,请务必更新您的 API 的 storage_key 配置config/auth.php 配置文件中的选项。
  • 我的表中有标记列,我不想更改列名。
  • 对我来说这个设置工作正常,所以请重新确认你的令牌,也许你传递了错误的令牌,因为在相同的设置下它对我以及在我的教程中都有效
  • 运行 php artisan config:cache 后,我的应用程序运行良好。

标签: php api authentication laravel-6


【解决方案1】:

如果您遇到同样的问题,请使用此命令清除缓存

php artisan config:cache

再试一次

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 2018-02-21
    • 2015-12-08
    • 2018-11-02
    • 2019-10-02
    • 2017-04-03
    • 2021-10-02
    相关资源
    最近更新 更多