我已经编写了用于注册的代码,并使用JWT身份验证登录。在此代码中,注册功能正常运行,但登录功能不起作用。登录函数提示错误,例如" Illuminate Findions Findions Auth user",找不到
我的用户模型是
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
use IlluminateFoundationAuthUser 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 'IlluminateFoundationAuthUser' not found
在您的控制器中,我想您忘了使用模型"用户"在名称空间声明下方添加它,或者是与IlluminateFoundationAuthUser
useAppUser;
您必须运行以下内容:
composer update
composer dump-autoload
我的用户模型存在问题,我解决了
<?php
namespace App;
use IlluminateAuthAuthenticatable;
use IlluminateDatabaseEloquentModel;
use IlluminateAuthPasswordsCanResetPassword;
use IlluminateContractsAuthAuthenticatable as AuthenticatableContract;
use IlluminateContractsAuthCanResetPassword 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'];
}