php laravel 8 - auth()->工厂(){相同的刷新()和尝试()}在JWT授权控制器中未定义

k3bvogb1  于 2022-10-30  发布在  PHP
关注(0)|答案(1)|浏览(70)

我在Laravel 8中使用JWT进行API身份验证。
当我在我的控制器中使用auth()->时,对于factory()attemp()或任何东西,Laravel并不知道它,并说:
Undefined method 'attempt'.intelephense(1013)
我不知道我忘了加什么
我身份验证控制器:

namespace App\Http\Controllers\Api\Admin;

use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;

class AuthController extends Controller
{

    public function __construct() {
        $this->middleware('auth:api', ['except' => ['login', 'register']]);
    }

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

        if ($validator->fails()) {
            return response()->json($validator->errors(), 422);
        }

        if (! $token = auth()->attempt($validator->validated())) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        return $this->createNewToken($token);
    }
.
.
.
.
.

和我的config/auth.php文件:

return [

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

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

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

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
        // Following array is newly added to config
        'otp-user' => [
            'driver' => 'otp-based-auth-provider'
        ],

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],
    ],

    'password_timeout' => 10800,

];
jchrr9hc

jchrr9hc1#

Intelephense在处理Laravel中的一些方法时有一些问题。你可以忽略它,因为它应该可以工作,或者你可以通过以下方式调用它:

JWTAuth::attempt($validator->validated)

它应该会让错误消失。

相关问题