With password session send(); exit(); } $sessionId = $_GET['session']; $sessionId = str_replace("LNSESS", "", $sessionId); require_once('../Logics/Auth.php'); try { $query = $db->prepare("UPDATE sessions SET session_active='N', session_terminated_at='$istTime' WHERE session_id='$returned_sessionId' AND user_id='$returned_id' AND session_active='Y'"); $query->execute(); $rowCount = $query->rowCount(); $returnData = array(); $returnData['session_id'] = "LNSESS".$returned_sessionId; $response = new Response(true, 200, "Logged Out Successfully", $returnData); $response->send(); exit(); } catch(PDOException $e) { error_log("SQL Error - Logout - " . $e->getMessage()); $response = new Response(false, 500, "(Action:- Logout) Sever Error"); $response->send(); exit(); } } else if(array_key_exists("verify", $_GET)) { if($_SERVER['REQUEST_METHOD'] !== 'PATCH') { $response = new Response(false, 405, "Invalid Method"); $response->send(); exit(); } require_once('../Helpers/Session.php'); $bypassAccessTokenCheck = 1; require_once('../Logics/Auth.php'); if($returned_accessTokenExpiry < time()) { try { //Check if it has not crossed the refresh token time if($returned_refreshTokenExpiry > time()) { //Extend Tokens $new_accessToken = manualEncryption($returned_id."_".time()); $new_refreshToken = manualEncryption($returned_id."_".time()."_REFRESHTOKEN_"); $new_accessTokenExpiry = date("Y-m-d H:i:s", time() + 43200); $new_refreshTokenExpiry = date("Y-m-d H:i:s", time() + 86400); $query = $db->prepare("UPDATE sessions SET access_token='$new_accessToken', access_token_expiry='$new_accessTokenExpiry', refresh_token='$new_refreshToken', refresh_token_expiry='$new_refreshTokenExpiry', session_last_refreshed_at='$istTime' WHERE session_id='$returned_sessionId' AND user_id='$returned_id'"); $query->execute(); $returnData = array(); $returnData['user_id'] = "LNUSR".$returned_id; $returnData['user_name'] = $returned_fullName; $returnData['user_role'] = $returned_user_role; $returnData['session_id'] = "LNSESS".$returned_sessionId; $returnData['access_token'] = $new_accessToken; $returnData['access_token_expiry'] = strtotime($new_accessTokenExpiry); $returnData['refresh_token'] = $new_refreshToken; $returnData['refresh_token_expiry'] = strtotime($new_refreshTokenExpiry); $returnData['force_logout'] = 0; $response = new Response(true, 200, "Session Extended", $returnData); $response->send(); exit(); } else { $query = $db->prepare("UPDATE sessions SET session_active='N', session_terminated_at='$istTime' WHERE session_id='$returned_sessionId' AND user_id='$returned_id'"); $query->execute(); $returnData = array(); $returnData['force_logout'] = 1; $response = new Response(false, 404, "Session Expired", $returnData); $response->send(); exit(); } } catch(PDOException $e) { error_log("SQL Error - Verifying User - " . $e->getMessage()); $response = new Response(false, 500, "(Action:- Verifying User) Sever Error"); $response->send(); exit(); } } else { $returnData = array(); $returnData['user_id'] = "LNUSR".$returned_id; $returnData['user_name'] = $returned_fullName; $returnData['user_role'] = $returned_user_role; $returnData['session_id'] = "LNSESS".$returned_sessionId; $returnData['access_token'] = $returned_accessToken; $returnData['access_token_expiry'] = $returned_accessTokenExpiry; $returnData['refresh_token'] = $returned_refreshToken; $returnData['refresh_token_expiry'] = $returned_refreshTokenExpiry; $returnData['force_logout'] = 0; $response = new Response(true, 200, "Verified Successfully", $returnData); $response->send(); exit(); } } else if(array_key_exists("number", $_GET)) { if($_SERVER['REQUEST_METHOD'] !== 'GET') { $response = new Response(false, 405, "Invalid Method"); $response->send(); exit(); } if(!isset($_GET['number'])) { $response = new Response(false, 401, "Unauthorized Error"); $response->send(); exit(); } $number = trimAndSecure($_GET['number']); if(strlen($number) !== 10) { $response = new Response(false, 403, "Incorrect Contact Number"); $response->send(); exit(); } $query = "SELECT otp, otp_validity,user_email_id FROM users WHERE user_active='Y' AND user_whatsapp_number='$number'"; $query = $db->prepare($query); $query->execute(); if($query->rowCount() === 1) { while($row = $query->fetch(PDO::FETCH_ASSOC)) { $otp = $row['otp']; $otpValidity = $row['otp_validity']; $email = $row['user_email_id']; } if($otpValidity && $istTime < $otpValidity) { $returnData = array(); $returnData['feedback'] = "OTP sent already. Valid till " . date("M jS H:i:s", strtotime($otpValidity)); $response = new Response(true, 200, "OTP sent already", $returnData); $response->send(); exit(); } else { $newOTP = rand(111111,999999); $newValidity = date('Y-m-d H:i:s', strtotime("$istTime + 18 minute")); $newValidityReadable = date("M jS H:i:s", strtotime($newValidity)); $query = $db->prepare("UPDATE users SET otp='$newOTP', otp_validity='$newValidity', user_updated_at='$istTime' WHERE user_whatsapp_number='$number'"); $query->execute(); $text = "
Your OTP for LivNest Finance Stage is valid for next 20 minutes till $newValidityReadable
"; $text .= "OTP: $newOTP
"; $subject = "OTP request for Livnest Finance Stage"; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // More headers $headers .= "From: