繁体   English   中英

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

[英]Class Lcobucci\\JWT\\Parser does not exist in Passport (Laravel 5.6)

我正在使用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
        );
    }

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM