如何使用jwt授权Laravel中的用户和管理员?
我的行动: 1) 我安装了jwtauth 2) 创建了控制器AuthController 3) 在一个路由中,我在AuthController中发送方法loginUser和loginAdmin 但是jwtauth试图通过用户模型进行授权 我的方法验证管理:如何使用jwt授权Laravel中的用户和管理员?,laravel,authentication,jwt,Laravel,Authentication,Jwt,我的行动: 1) 我安装了jwtauth 2) 创建了控制器AuthController 3) 在一个路由中,我在AuthController中发送方法loginUser和loginAdmin 但是jwtauth试图通过用户模型进行授权 我的方法验证管理: public function adminLogin(Request $request){ Config::set('jwt.user', 'App\Admins'); Config::set('auth.providers.
public function adminLogin(Request $request){
Config::set('jwt.user', 'App\Admins');
Config::set('auth.providers.users.model', \App\Admins::class);
$credentials = $request->only('email', 'password');
$token = null;
try {
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json([
'response' => 'error',
'message' => 'invalid_email_or_password',
]);
}
} catch (JWTAuthException $e) {
return response()->json([
'response' => 'error',
'message' => 'failed_to_create_token',
]);
}
return response()->json([
'response' => 'success',
'result' => [
'token' => $token,
'message' => 'I am Admin user',
],
]);
}
返回包含App\Admins的配置
但是JWT:Auth指的是用户模型,如何修复它
My composer.json:
"require": {
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.6.*",
"laravel/tinker": "^1.0",
"tymon/jwt-auth": "^1.0.0-rc.2"
},
决定:
安装我的项目
我的方法代码:
public function adminLogin(Request $request){
Config::set('jwt.user', 'App\Admins');
Config::set('auth.providers.users.model', \App\Admins::class);
$credentials = $request->only('email', 'password');
$token = null;
try {
if (!$token = Auth::guard('jwt')->attempt($credentials)) {
return response()->json([
'response' => 'error',
'message' => 'invalid_email_or_password',
]);
}
} catch (JWTAuthException $e) {
return response()->json([
'response' => 'error',
'message' => 'failed_to_create_token',
]);
}
return response()->json([
'response' => 'success',
'result' => [
'token' => $token,
'message' => 'I am Admin user',
],
]);
}
不是最好的解决方案,但它可以工作并共享用户和管理员。您可以修改文件,而不是在运行时设置配置吗?在尝试修改之前读取配置的可能性不是零it@Quezler为什么auth.php中的默认参数“default”我试图更改为提供者admin,他切换到admin模型,但用户的令牌问题停止了工作,我的意思是您正在设置
Config::set('jwt.User','App\Admins')代码>和Config::set('auth.providers.users.model',\App\Admins::class)代码>在运行时而不是config
目录中的配置文件是的,我在控制器的方法中安装了这些配置。还有一种类似的方法,仅用于用户授权