Laravel-测试api时不存在方法Illumb\Auth\RequestGuard::Test

Laravel-测试api时不存在方法Illumb\Auth\RequestGuard::Test,laravel,postman,laravel-passport,Laravel,Postman,Laravel Passport,我使用Laravel Passport对api端点进行Laravel 5.8身份验证 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\User; use Validator; public function login(Request $request) { $validator = Valida

我使用Laravel Passport对api端点进行Laravel 5.8身份验证

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\User;
use Validator;

    public function login(Request $request)
{
    $validator = Validator::make($request->all('email', 'password'), [
        'email' => 'required|string|email|max:255',
        'password' => 'required|string|min:6'
    ]);

    if ($validator->fails()) {
        return response()->json(['error'=>$validator->errors()], 401);
    };

    if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
        $user = Auth::user();
        $success['token'] = $user->createToken('MyApp')-> accessToken;
        return response()->json(['success' => $success], 200);
    }
    else{
        return response()->json(['error'=>'Can not log in with the data provide.'], 401);
    }        
} 
当我在POSTMAN上测试端点时,我得到了以下错误:

错误的原因是什么,如何解决

BadMethodCallException 方法Illumb\Auth\RequestGuard::尝试不存在


要使用用户名和密码登录用户,您需要使用
web
身份验证保护,如下所示:

if(Auth::guard('web')->尝试(['email'=>request('email'),'password'=>request('password')])){
$user=Auth::guard('web')->user();

在测试最近添加的路由时,我遇到了同样的问题。清除缓存的路由为我解决了这个问题:

php artisan route:clear

当您尝试
Auth::guard('web')->尝试(…
)时会发生什么?当我这样做时,我出现了另一个错误,如图所示:调用null上的成员函数createToken()。您是否将
Auth::user()
更改为
Auth::guard('web')->user()
?非常感谢。很高兴我能提供帮助!现在将其作为答案发布。
php artisan route:clear