我正在使用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
);
}
答案 0 :(得分:0)
我参加聚会可能有点晚了。
您是否在产品上运行作曲家更新?
您确定要在prod上运行迁移吗?
您是否使用php artisan在产品上安装通行证?
在storage /目录中,您的公钥/私钥在其中吗?
PS出发@Samuel Liew。在真正需要它的地方成为mod。无论您信不信,您的时间都是宝贵的。您在这里浪费它。坏mod,坏。我想您不会知道您在说什么,因为您可能不太熟悉Laravel。这是一个答案。这些是确保您的Laravel产品在添加新程序包时的本地步骤的字面步骤。我什至调整了步骤以验证所有零件是否都在这里,以便此特定的包装能够正常工作。