'API_INPUT_1','error' => 'refreshkey is required'])); } //GET USER_DATA $stmt = $pdo->prepare('SELECT * FROM users WHERE refreshkey = ?'); $stmt->execute([$token_refresh]); if ($stmt->rowCount() == 1) { //Get results $user_data = $stmt->fetch(); //Check valid userkey $valid_key = strtotime('+30 minutes',strtotime($user_data['lastlogin'])); $valid = ($valid_key <= time())?0:1; //REFRESH USERKEY if ($user_data['userkey'] != '' && $valid == 0){ $user_data['userkey'] = bin2hex(random_bytes(25)); $sql_userkey = 'UPDATE users SET userkey = ? WHERE id = ?'; $stmt_userkey = $pdo->prepare($sql_userkey); $stmt_userkey->execute([$user_data['userkey'], $user_data['id']]); } //REFRESH USERKEY if ($user_data['service'] != '' && $valid == 0){ $user_data['service'] = bin2hex(random_bytes(25)); $sql_service = 'UPDATE users SET service = ? WHERE id = ?'; $stmt_service = $pdo->prepare($sql_service); $stmt_service->execute([$user_data['service'], $user_data['id']]); } //Refresh REFRESHKEY $user_data['refreshkey'] = bin2hex(random_bytes(25)); $sql_refreshkey = 'UPDATE users SET refreshkey = ? WHERE id = ?'; $stmt_refreshkey = $pdo->prepare($sql_refreshkey); $stmt_refreshkey->execute([$user_data['refreshkey'], $user_data['id']]); $token = createCommunicationToken($user_data['userkey']); //RETURN JWT AND CLIENTSECRET $user = array( 'clientID' => $user_data['username'], 'token' => $token, 'token_valid' => date('Y-m-d H:i:s',time() + 1800), 'userkey' => $user_data['userkey'], 'refreshkey' => $user_data['refreshkey'], 'language' => $user_data['language'] ); //+++++++++++++++++++++++++++++++++++++++++++ //Return as JSON //+++++++++++++++++++++++++++++++++++++++++++ echo json_encode($user, JSON_UNESCAPED_UNICODE); } else { http_response_code(404); exit(json_encode(['error_code' => 'API_NOT_FOUND','error' => 'Refresh not succesfull'])); } ?>