Search code examples
laravelapiplesklaravel-passport

Laravel passport create token doesnt work on plesk server


I use passport in my laravel project to authenticate users by api. API work correctly on my local host. But after i deploy it on Plesk server token doesnt create. Always show Server Error.

public function login(Request $request) {
    $validator = Validator::make($request->all(),[
        'email'    => 'required',
        'password' => 'required',
    ]);

    if($validator->fails()) {
        return response()->json(["validation errors" => $validator->errors()]);
    }

    $email  =   $request->email;
    $password = $request->password;
    error_log($password);
    $user   =   DB::table("users")->where([["email", "=", $email]])->first();

    if(is_null($user)) {
        return response()->json(["success" => false, "message" => "User doesn't exist"]);
    }

    if(Auth::attempt(['email' => request('email'), 'password' => request('password')])) {
        $user = Auth::user();
        $token = $user->createToken('token')->accessToken;
        $success['success'] = true;
        $success['user'] = $user;
        $success['message'] = "Success! you are logged in successfully";
        $success['token'] = $token;
        return response()->json(['success' => $success ], 200);
    } else {
        return response()->json(['error' => 'Unauthorised'], 401);
    }
}

$token = $user->createToken('token')->accessToken; This line throw error


Solution

  • Problem was in my AuthServiceProvider

    class AuthServiceProvider extends ServiceProvider
    {
    
        protected $policies = [
            'Medicare\Model' => 'Medicare\Policies\ModelPolicy',
        ];
    
        public function boot()
        {
            $this->registerPolicies();
            Passport::routes();
            //
        }
    }
    

    After i commented 'Medicare\Model' => 'Medicare\Policies\ModelPolicy' everything works fine.