Класс ‘Подсветка \ Фонд \ Аут \ Пользователь «не найден JWT Аут Laravel

Я написал код для регистрации и входа в систему с использованием аутентификации JWT. В этом коде функция регистрации работает нормально, но функция входа не работает. Функция входа в систему выдает ошибку, так как класс «Подсветка \ Основа \ Аутентификация \ Пользователь» не найден

Моя модель пользователя

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $table = 'users';
public $timestamps = false;
protected $primaryKey = 'user_name';
protected $fillable = ['user_name','password'];
}

Мой UserController это

class UsersController extends Controller
{

public function login()
{
$credentials = request()->only('user_name','password');
try{
$token = JWTAuth::attempt($credentials);
if($token){
return response()->json(['error'=>'invalid_credentials'],401);
}
}
catch(JWTException $e){
return response()->json(['error'=>'something went wrong'],500);
}
return response()->json(['token'=>$token],200);
}

public function register()
{
$user_name = request()->user_name;
$password = request()->password;
$user = User::create([
'user_name'=>$user_name,
'password'=>bcrypt($password)
]);

$token = JWTAuth::fromUser($user);

return response()->json(['token'=>$token],200);
}
}

Функция входа показывает ошибку как

Class 'Illuminate\Foundation\Auth\User' not found

0

Решение

В вашем контроллере, я думаю, вы забыли использовать свою модель «Пользователь», добавьте ее ниже декларации пространства имен, или это конфликт с Illuminate\Foundation\Auth\User

use\App\User;

И вы должны выполнить следующее:

composer update
composer dump-autoload
0

Другие решения

Проблема существует с моей моделью пользователя, и я решил ее

<?php

namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{use Authenticatable, CanResetPassword;

//
protected $table = 'users';
public $timestamps = false;
protected $primaryKey = 'user_name';
protected $fillable = ['user_name','c_name','accessibility_level','password','role','contact_number','address'];
}
0

По вопросам рекламы [email protected]