jwt refresh token 1.0

This commit is contained in:
2025-09-21 17:49:55 +03:00
parent 639bc3c1a9
commit 5ddab94773
8 changed files with 95 additions and 19 deletions

View File

@@ -1,3 +1,6 @@
//Разобраться с хранением и использованием refresh token
//Добавить endpoint logout
const token = localStorage.getItem("token");
if (token) {
window.location.href = "./../main/index.html";
@@ -21,11 +24,16 @@ document.getElementById('loginForm').addEventListener('submit', async function (
});
const data = await response.json(); // читаем только один раз
if (response.ok) {
localStorage.setItem("token", data.access_token); // сохраняем только при успехе
const remember_me = document.getElementById("remember").checked
if (response.ok) { // сохраняем только при успехе
if (remember_me) { // если нажат чекбокс, то сохраняем в localstorage со стандартным временем действия
localStorage.setItem("token", data.access_token);
} else { // если не нажат, то в sessionstorage до перезахода в браузер(?)
sessionStorage.setItem("token", data.access_token);
}
window.location.href = './../main/index.html';
} else {
} else { //парсинг и вывод ошибок, если есть
if (Array.isArray(data.detail)) {
const messages = data.detail.map(e => {
const field = e.loc.filter(locPart => locPart !== 'body').join(' -> ');
@@ -42,7 +50,7 @@ document.getElementById('loginForm').addEventListener('submit', async function (
showError(['Connection error: ' + err.message]);
}
});
function showError(messages){
function showError(messages){ //Добавление их на form со стилями
let errorElem = document.getElementById('formError');
let container = document.getElementById('glass-container');
if (!errorElem){

View File

@@ -9,6 +9,9 @@
<body>
<div class="glass-container">
<div class="data-box">
<form id="logoutForm">
<button type="submit">Logout</button>
</form>
<h2>data</h2>
<form action="#" method="POST">
<p>Data</p>

View File

@@ -1,4 +1,13 @@
const token = localStorage.getItem("token");
if (!token) {
window.location.href = "./../login/index.html";
}
function tokenCheck(){
const token = localStorage.getItem("token") || sessionStorage.getItem("token");
if (!token) {
window.location.href = "./../login/index.html";
}
}
tokenCheck()
document.getElementById('logoutForm').addEventListener('submit', async function (e) {
e.preventDefault();
localStorage.removeItem("token");
tokenCheck();
});

View File

@@ -58,3 +58,17 @@ p {
color: #fff;
margin-top: 15px;
}
button {
background: #fff;
color: black;
padding: 10px;
border: none;
border-radius: 10px;
cursor: pointer;
margin-top: 15px;
}
button:hover {
background: transparent;
color: white;
outline: 1px solid #fff;
}