Я попытался стереть токен jwt с помощью функции localStorage.removeItem (), но не смог в результате выполнения приведенного ниже кода.
Я пишу с использованием Javascript и Express. js в коде Visual Studio. И используйте браузер Chrome.
[Клиент]
secession = () => {
fetch('http://localhost:3000/users/secession', {
headers: {
'Content-Type': 'application/json',
'accessToken': JSON.stringify(localStorage.getItem('tokenValue')),
}
})
.then((result) => {
return result.json();
})
.then((data) => {
if (data === 'success secession') {
localStorage.removeItem('tokenValue');
alert('Success');
} else {
alert('Fail. Try again');
}
})
.catch((err) => err);
}
[Сервер]
secession: async (req, res) => {
try {
const token = req.get('accessToken');
if (typeof token !== 'undefined') {
const decoded = jwt.verify(JSON.parse(token), secretKey);
const result = await users.users.secession(decoded);
// result is 'success secession'
res.send(result);
} else {
res.sendStatus(403);
}
} catch (err) {
res.send(err);
}
}
Когда я изменяю res.send (результат) до res. json (результат) На сервере мне удалось стереть токен.
Я думаю, что Клиент не получит ответ, если Сервер отправит результат по тексту / html.
Но я не уверен, что это правильно.