im trying to verify JWT in front-end, as you see, i get a token in Login
.then((response) => {
if(response.data.token) {
localStorage.setItem('token', response.data.token);
localStorage.setItem('user', response.data.user);
console.log("Auth: ", auth);
and i call a function
const validateToken = () => {
Axios.get("https://xx.xxx.xx.xx:xxxx/checkAuth", {
headers: {"access-token": localStorage.token}
}).then((response) => {
setAuth(response.data);
})
};
to valide my token ... i get respond from back end that is stored in response.data
but down here i called it THIS LINE
you can see im calling this function, and trying to get respond from it -see bellow in code-
const validateToken = () => {
Axios.get("https://xx.xxx.xx.xx:xxxx/checkAuth", {
headers: {"access-token": localStorage.token}
}).then((response) => {
localStorage.authState = response.data;
})
};
const handleSubmit = async (e) => {
e.preventDefault();
const login = () => {
Axios.post("https://xx.xxx.xx.xx:xxxx/login", {
email: email,
password: pwd
}).then((response) => {
if(response.data.token) {
localStorage.setItem('token', response.data.token);
localStorage.setItem('user', response.data.user);
validateToken(); `// T H I S L I N E`
//after function done right, DO SOMETHING HERE, if failed, do something else
} else {
if(response.data.message === "401") {
setErrMsg('Missing Username or Password.');
} else if(response.data.message === "402") {
setErrMsg("User doesn't exist.");
} else {
setErrMsg('No Server Response');
}
}
})
.catch(function (error) {
if (error.response) {
console.log("Error: ", error.response.data);
}
});
i tried to store respond to local storage or variable and tried if(functionOutputIsRight) {do the right thing } else { do the other thing }
i belive u know what i mean, but nothing helped, beacuse this function never finish before next lines go on down here after validateToken();
like i tried
validateToken();
console.log(localStorage.AuthState);
but it was always empty (undefined)