как изменить направление расположения окна после запроса POST с помощью функции GET - PullRequest
0 голосов
/ 04 июля 2019

Я работаю над безопасным подключением к форме с помощью jwt, поэтому мне нужно выполнить запрос get с токеном, полученным после успешного выполнения почтового запроса.

Я пытался изменить местоположение с помощью окна.location.href, но, выполнив это (это как запрос get) и без моего токена, я получу 403, потому что у меня нет токена, подписанного сервером.

Сторона сервера:

   app.post('/',urlencodedParser,function(req,res){
        //data base verification
                const myToken=jwt.sign({iss:"locahost:8080",user:req.body.email,role:"moderator",admin:false},app.get('secret'));
                res.status(200).json(myToken);


});
app.get('/home',function (req,res){
    res.status(200).sendFile(__dirname+'/views/admin.html');
});

На стороне клиента:


    var xhr = new XMLHttpRequest();
    xhr.open("POST", '/', true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function() {
        if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
            if(JSON.parse(xhr.response)=="access-denied"){
                createAlert("alert alert-danger","Email ou mot de passe incorrect");
            }else{
                localStorage.setItem('token', JSON.parse(xhr.response));
                homeRequest();
            }       
        }
    }               
    var payLoad = "email=" + email + "&" + "password=" + password; 
    xhr.send(payLoad);   
}
function homeRequest(){
    var xhr=new XMLHttpRequest();
    xhr.open("GET",'/home',true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader('Authorization', 'Bearer '+localStorage.getItem('token'));
    xhr.onreadystatechange=function(){
        if(xhr.readyState == XMLHttpRequest.DONE && xhr.status ==200){
            console.log('xhr response ',xhr.response);
        }
    }  
    xhr.send(null);
}

мои фактические результаты имеют более полную страницу в моем xhr ответе, но я хочу, когда мой запрос POST будет выполнен, я сделаю GETзапросить другой маршрут в моем случае я хочу GET / home с токеном в заголовке, чтобы сервер принял и отправил мне эту страницу, но проблема в том, что я все еще на маршрутах / и я не могу загрузить эти маршруты.

Извините, если недостаточно ясно: /

1 Ответ

0 голосов
/ 04 июля 2019

Я думаю, что нет проблем с сохранением вашего токена, если ваш другой код на стороне сервера работает неправильно.Вы всегда можете использовать localStorage или sessionStorage
Хотя ваш вопрос не так ясен.Вы можете выполнить отладку по loggin результатам, вот несколько предложений:
Сначала попробуйте console.log после получения ответа на почтовый запрос, чтобы увидеть, что вы получаете
Также попробуйте console.logв функции get сервера проверьте, существует ли такой файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...