如何使用jwt授权Laravel中的用户和管理员?

如何使用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.

我的行动: 1) 我安装了jwtauth 2) 创建了控制器AuthController 3) 在一个路由中,我在AuthController中发送方法loginUser和loginAdmin

但是jwtauth试图通过用户模型进行授权

我的方法验证管理:

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
目录中的配置文件是的,我在控制器的方法中安装了这些配置。还有一种类似的方法,仅用于用户授权