request->getHttpMethod() !== 'POST') return Response::errorResponse('{ "message" : "Unsupported endpoint" }' ); $json = $this->request->jsonContent(); if(!isset($json->login) || !isset($json->password)) { $r = new Response(422,"login and password fields are mandatory"); $r->send(); } $user = User::getWithLogin($json->login); // var_dump($user); if(empty($user) || !hash_equals($json->password, $user->password)) { $r = new Response(422,"wrong credentials"); $r->sendWithLog(); } // generate json web token $issued_at = time(); $expiration_time = $issued_at + (60 * 60); // valid for 1 hour $token = array( "iat" => $issued_at, "exp" => $expiration_time, "iss" => JWT_ISSUER, "id" => $user->id, "data" => array( "firstname" => $user->firstname, "lastname" => $user->lastname, "login" => $user->login, "email" => $user->email ) ); $jwt = JWT::encode( $token, JWT_BACKEND_KEY ); $jsonResult = json_encode(array("jwt_token" => $jwt)); return Response::okResponse($jsonResult); } } ?>