diff options
Diffstat (limited to 'views')
| -rw-r--r-- | views/global/header.php | 6 | ||||
| -rw-r--r-- | views/global/router.php | 1 | ||||
| -rw-r--r-- | views/login/index.php | 31 | ||||
| -rw-r--r-- | views/logout/index.php | 23 | ||||
| -rw-r--r-- | views/logout/meta.php | 4 |
5 files changed, 48 insertions, 17 deletions
diff --git a/views/global/header.php b/views/global/header.php index a00c528..863ba10 100644 --- a/views/global/header.php +++ b/views/global/header.php @@ -17,7 +17,8 @@ <div class="flex-expand"></div> <a id="login" href="/login">Login</a> <a id="register" href="/register">Register</a> - <a id="profile" href="/profile/" hidden>Profile</a> + <a id="profile" href="/profile" hidden>Profile</a> + <a id="logout" href="/logout" hidden>Logout</a> <div class="fadeout-right"></div> </nav> <script type="text/javascript"> @@ -25,9 +26,10 @@ document.getElementById('login').hidden = true; document.getElementById('register').hidden = true; + document.getElementById('logout').hidden = false; const profile = document.getElementById('profile'); profile.hidden = false; - profile.href += response; + profile.href += '/' + response; } authenticated(updateNavbar); </script> diff --git a/views/global/router.php b/views/global/router.php index 8986dfe..d77fcda 100644 --- a/views/global/router.php +++ b/views/global/router.php @@ -16,6 +16,7 @@ function route_view() { case '/profile': return '/profile'; case '/register': return '/register'; case '/login': return '/login'; + case '/logout': return '/logout'; } switch ($uri) { diff --git a/views/login/index.php b/views/login/index.php index 1013874..94faafe 100644 --- a/views/login/index.php +++ b/views/login/index.php @@ -1,20 +1,21 @@ -<?php if (isset($user_status)): ?> - <?php if ($user_status !== ""): ?> - <p> - Fail: <?= $user_status ?> - </p> - <?php else: ?> - <p> - Success! - </p> - <script type="text/javascript"> - sessionStorage.setItem("token", "<?= $token ?>"); - window.location.href = "/"; - </script> +<h1>Login</h1> + +<hr class="new-section"/> + +<form action="#" method="POST" class="font-115 flex-col-centered max-width-20 center-margin"> + <?php if (isset($user_status)): ?> + <?php if ($user_status !== ""): ?> + <p class="item error"><span> + <strong>Error:</strong> <?= $user_status ?> + </span></p> + <?php else: ?> + <script type="text/javascript"> + sessionStorage.setItem("token", "<?= $token ?>"); + window.location.href = "/"; + </script> + <?php endif; ?> <?php endif; ?> -<?php endif; ?> -<form action="#" method="POST"> <input type="text" name="username" placeholder="Username" minlength="1" pattern="[A-Za-z][A-Za-z_0-9]*"> <input type="password" name="password" placeholder="Password" minlength="4"> <input type="submit" value="Login"> diff --git a/views/logout/index.php b/views/logout/index.php new file mode 100644 index 0000000..fc9af5a --- /dev/null +++ b/views/logout/index.php @@ -0,0 +1,23 @@ +<h2>Logging you out...</h2> + +<script type="text/javascript"> + if (!sessionStorage.getItem('token')) { + window.location.href = '/'; + } + + function deleteToken(response) { + let token = sessionStorage.getItem('token'); + sessionStorage.removeItem('token'); + + let request = new XMLHttpRequest(); + request.onreadystatechange = function() { + if (request.readyState < 4) return; + + window.location.href = '/'; + } + request.open("DELETE", "#", true); + request.setRequestHeader("Authorization", token); + request.send(null); + } + authenticated(deleteToken); +</script> diff --git a/views/logout/meta.php b/views/logout/meta.php new file mode 100644 index 0000000..be189c2 --- /dev/null +++ b/views/logout/meta.php @@ -0,0 +1,4 @@ +<?php + +$title = 'Logging out'; +$controller = 'login'; |
