Laravel 7使用Passport的多重身份验证

问题描述

我正在开发Laravel应用程序,该应用程序需要为多个用户生成访问令牌。我正在使用带有密码授予功能的Laravel Passport发行令牌。我遵循了Laravel文档,但是当我尝试使用Postman调用我的API端点(学生)时,重定向到登录路由时,似乎做错了。后来我发现重定向来自我创建的中间件,但我仍然不知道出了什么问题

auth.php

        'guards' => [
                'web' => [
                    'driver' => 'session','provider' => 'users',],'api' => [
                    'driver' => 'passport','hash' => false,'api-student' => [
                    'driver' => 'passport','provider' => 'students',]
    ];
    
    
         'providers' => [
                'users' => [
                    'driver' => 'eloquent','model' => App\User::class,'students' => [
                    'driver' => 'eloquent','model' => App\Student::class,

api.php

    Route::post('auth/getlogin','Api\StudentController@authenticate')->middleware('auth:api-student');
    
    //Api\StudentController
    public function authenticate(Request $request,Student $user)
        {
            $credentials = [
                'username'=>$request->username,'password'=>$request->password];
          
            if(!Auth::guard('api-student')->attempt($credentials)) {
                return response()->json([
                    'message'=>'Error'
                ],401);
            }
             
            if(Auth::guard('api-student')->attempt($credentials)){
                $user = Auth::guard('client');
                $success['token'] =  $user->createToken('MyApp')->accessToken;
                return response()->json(['success' => $success],$this->successStatus);
            }
            else{
                return response()->json(['error'=>'Username or password incorrect'],401);
            }
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)