Redirect When Not Authenticated in PHP + HTMX

Imam Ali Mustofa - Mar 24 - - Dev Community

Hello Punk!

Yes, I am again. Using HTMX as an isolated component and creating Hypermedia interactivity with less JavaScript code is my goal. (We not talking about Offline First, That's sound "Uuuuaagggrrrrh!" for me)

HTMX using xmlhttprequest when I use hx-{verbs} but in another side (the backend) I use PHP so, this function:

function handleAjaxOrRedirect(Response $response, string $path, int $code)
{
    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
        $response->setStatusCode($code);
    } else {
        $response->redirect($path);
    }
    exit();
}
Enter fullscreen mode Exit fullscreen mode

Really help me so much (thanks for myself) when I need to make sure is the request is valid / authenticated. Like...

$response = new Response();
if (!isAuthenticate()) {
    handleAjaxOrRedirect($response, '/', 401);
}
Enter fullscreen mode Exit fullscreen mode

I use it inside each controller __constructor. Yes, That's it!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .