У меня есть файл с авторизацией пользователя, при логине я получаю токен в localStorage. С этим все в порядке.
import saveToken from '../token';
import performRequest from '../requests';
export default function loginRequest(email, password) {
return performRequest(`/api/login?password=${password}&userName=${email}`, {
method: 'POST',
})
.then((response) => response.text())
.then(saveToken);
}
Но когда я регистрирую нового пользователя, то вместо токена в tokenData
сохраняется "{\"id\":60}"
(цифра не обязательно такая, она меняется после каждой регистрации)
sendIdRequest(id, email, password) {
return performRequest(`/api/users/${id}/creds`, {
method: 'POST',
body: JSON.stringify({
password: password,
userName: email,
}),
headers: {
'Content-Type': 'application/json;charset=utf-8',
},
})
.then((response) => response.text())
.then(saveToken)
}
Сам saveToken
export default function saveToken(token) {
localStorage.setItem('tokenData', JSON.stringify(token));
}
Мне нужно, чтобы после регистрации в localStorage сохранялся сам токен, оценю любую вашу помощь.
Похоже, вам по-разному приходят данные с сервера при логине и регистрации - в первом случае только число, во втором - объект с полем id. Для сохранения токена после регистрации нужна функция типа такой:
function saveRegistrationToken(token) {
localStorage.setItem('tokenData', JSON.parse(token).id);
}
В вашей фукнции saveToken
используется JSON.stringify
, (а не JSON.parse
) поэтому получается неожиданный результат.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть функция, которая записывает полученные с формы html документа значения в переменные а и b, в ней на 47й строке консоль выдает ошибку "Uncaught...
Решил отказаться от Ajax и все взаимодействие с сервером провожу через вебсокеты