php - Auth::attempt() 在 Laravel 6.4 中抛出错误 "Call to undefined method Illuminate\Auth\TokenGuard::attempt()"

标签 php laravel

最近尝试了一下最新的Laravel(6.4)。正在尝试实现基于 API 的简单登录功能。没有使用 Passport 或 Tymon 的 JWT 等任何软件包。我使用了非常基本的身份验证(只需在用户表中保留一列命名为“api_token”)。但出现错误说

Symfony\Component\Debug\Exception\FatalThrowableError : Call to undefined method Illuminate\Auth\TokenGuard::attempt()

这是我的 Controller

//only method in the controller, so used `__invoke` method.
    public function __invoke(Request $request)
    {
         $request->validate([
              'email'    => 'required',
              'password' => 'required',
         ]);

         $credentials = $request->only(['email', 'password']);
         $credentials['active'] = 1;

         if (Auth::guard('api')->attempt($credentials)) {
              return response()->json([
                  'data' => 'Wrong credential given'
              ]);
         }

         return response()->json([
             'data' => \auth()->user()
         ]);
    }

这是我的 config/auth.php 文件状态。我正在使用 api 防护进行访问。但 token 应该在登录后出现。在这里,我无法登录。

    'defaults' => [
            'guard' => 'api',
            'passwords' => 'users',
        ],

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

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

最佳答案

API Guard 没有尝试方法,也没有任何其他形式的用户登录。它所做的只是保护路线。要对用户进行身份验证,您仍应使用默认防护。

关于php - Auth::attempt() 在 Laravel 6.4 中抛出错误 "Call to undefined method Illuminate\Auth\TokenGuard::attempt()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630073/

相关文章:

javascript - jquery.js 和 bootstrap.js 冲突

php - 下单系统和多 table 输入

php - HTTP GET 中大数据破坏 json 对象

php - Laravel 模型在查询时将 MySQL 表重命名为复数

Laravel 类型转换指数 float 不工作

php - 如何在 laravel 中使用 hasMany 关系制作更新页面

javascript - 在 Javascript 中表达 php 代码

php - Laravel 属于合并?

php - 我们可以将@yield 的值存储在变量中吗

php - docker-php-ext-configure、docker-php-ext-install 和 docker-php-ext-enable 有什么作用?