Javascript для проверки имени пользователя и перенаправления, когда пользователь загружает сайт - PullRequest
0 голосов
/ 10 октября 2018

У меня есть проект C # MVC, и это мой файл Javascript, который проверяет, вошел ли пользователь в систему. У меня проблема в том, что страница постоянно обновляется, даже если значение моего shouldlogin меняется.Смысл этого файла JS состоит в том, чтобы проверить, вошел ли пользователь в систему, и перенаправить его на домашнюю страницу, авторизованную в заголовке.Я знаю, что это не совсем хороший способ сделать это, но если у кого-то есть какое-то руководство, это будет высоко оценено.Спасибо!

var shouldlogin = true;
var token = localStorage.getItem("token");

$(document).ready(function(){
    var loggedIn = checkLogin();

    if(loggedIn === true && shouldlogin === true)
    {
        if (shouldlogin === true)
        {
            setHeader();
            redirectToHome();
            return true;
        }
    }
    else if(loggedIn === false && shouldlogin === false)
    {
        redirectToLogin();
        return true;
    }
    return false;
});

function setHeader()
{
    $.ajaxSetup({
        beforeSend: function (xhr) {
            xhr.setRequestHeader('Authorization', token);
        }
    });
}

function redirectToHome()
{
    shouldlogin = false;
    $.ajax({
            type: 'GET',
            contentType: 'application/json; charset=utf-8;',
            url: 'Home/Index',
            success: function (response) {                
                $("body").html(response);
            }
    });  
}

function checkLogin()
{
    if (token === null)
    {
        return false;
    }
    else 
    {
        return true;
    }
}

function redirectToLogin()
{  
    $.ajax({
        type: 'GET',
        contentType: 'application/json; charset=utf-8;',
        url: 'Account/Index',
        success: function (response) {                
            $("body").html(response);
        }
    });  
}

function logOut()
{
    shouldlogin = true;
    localStorage.clear();
    redirectToLogin();
}

РЕДАКТИРОВАТЬ: я обнаружил, что это застряло в бесконечном цикле, игнорируя мои условные утверждения.Я распечатываю их, и это все еще показывает, что они не должны действительно приземлиться в первом if (тот, который вызывает бесконечное обновление).

1 Ответ

0 голосов
/ 10 октября 2018

Просто имейте в виду, что если этот скрипт JS выполняется в браузере, это может быть проблемой безопасности.Злоумышленник может изменить ваш скрипт в браузере и обойти логику входа в систему.Обычно эту проверку следует выполнять на стороне сервера.Если сервер обнаруживает, что клиент не вошел в систему, он перенаправляется на страницу входа и только после этого может предоставить клиенту доступ к запрошенным ресурсам.

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