Passport(Laravel 5.6)中不存在Lcobucci \\ JWT \\ Parser类

时间:2018-07-30 12:23:32

标签: php laravel laravel-passport

我正在使用Passport进行API身份验证。这是我的composer.json文件中安装的软件包。

"require": {
        "php": "^7.1.3",
        "barryvdh/laravel-dompdf": "*",
        "baum/baum": "~1.1",
        "benwilkins/laravel-fcm-notification": "^2.0",
        "fideloper/proxy": "^4.0",
        "intervention/image": "^2.4",
        "ixudra/curl": "^6.16",
        "laravel/framework": "5.6.*",
        "laravel/passport": "^6.0",
        "laravel/tinker": "^1.0",
        "lcobucci/jwt": "^3.2",
        "league/flysystem-aws-s3-v3": "^1.0",
        "pbmedia/laravel-ffmpeg": "^2.1",
        "predis/predis": "^1.1",
        "tymon/jwt-auth": "^1.0@dev",
        "zizaco/entrust": "^1.9"
    },

我没有任何复杂的包装。只是尝试在此处做一些简单的事情来登录并获取用户的详细信息。

我尝试多次安装和卸载Passport软件包。

注意:该代码在localhost上似乎工作正常,但是在生产服务器环境中运行时会产生问题。这是我第一次遇到一个非常奇怪的问题。

我无法解决问题。我在

上遇到此问题
 public function login(Request $request){

    if(Auth::guard('customer')->attempt(['email' => request('email'), 'password' => request('password')])){
     $user = Auth::guard('customer')->user();
         $select=$this->devicecustomers->where('customer_id',$user->id)->where('deviceid',$request['deviceid'])->count();

      if($select>0)
          {
          $expire_date = \Carbon::now()->addDays(365);
          $tokan = $user->createToken($user->id);   ====>>>  // // //This is the line were I am getting error. 
          $tokensubproperty = $tokan->token;
          $tokensubproperty->expires_at = $expire_date;
          $success['token'] =  $tokan->accessToken;
          $success['expires_at'] = $expire_date;

        $device = $this->devicecustomers->where('customer_id',$user->id)->where('deviceid',$request['deviceid'])->update(['mobile_tokan'=>$request->mobile_tokan, 'login_status'=>"login"]);
        return response()->json(['status' => 'success','success' => $success], $this->successStatus);
      }


         }
         else{

            return response()->json(['status' => 'error','error'=>'Invalid email or password.']);
         }

    }

此行是错误$tokan = $user->createToken($user->id);

其他人以前也遇到过同样的问题吗?有人可以建议出什么问题吗?

调试代码后,我在此函数app / vendor / laravel / passport / src / HasApiTokens.php中发现了问题

 public function createToken($name, array $scopes = [])
    {
        return Container::getInstance()->make(PersonalAccessTokenFactory::class)->make(
            $this->getKey(), $name, $scopes
        );
    }

1 个答案:

答案 0 :(得分:0)

我参加聚会可能有点晚了。

您是否在产品上运行作曲家更新?

您确定要在prod上运行迁移吗?

您是否使用php artisan在产品上安装通行证?

在storage /目录中,您的公钥/私钥在其中吗?

PS出发@Samuel Liew。在真正需要它的地方成为mod。无论您信不信,您的时间都是宝贵的。您在这里浪费它。坏mod,坏。我想您不会知道您在说什么,因为您可能不太熟悉Laravel。这是一个答案。这些是确保您的Laravel产品在添加新程序包时的本地步骤的字面步骤。我什至调整了步骤以验证所有零件是否都在这里,以便此特定的包装能够正常工作。