Попытка навигации пользователя, чтобы войти, если cookie не определен - PullRequest
0 голосов
/ 29 мая 2018

В моем домене app.run angularjs я пытаюсь проверить, определен ли cookie и, если он не определен, перенаправить пользователя на страницу входа.Если файл cookie определен, страница хорошо загружается на страницу, но если файл cookie не определен, страница не загружается должным образом, так как она обновляется или перезагружается на странице входа в бесконечном цикле.

здесьфрагменты

app.run(["$rootScope","$location", "$cookies", function($rootScope, $location, $cookies) {

var token = $cookies.getObject('token');
        if (token !== undefined) {
            $rootScope.user = token;
            $location.path(originalPath);
        }else{
            alert("5900");
            $(location).attr('href', '/login');//when cookie token is not defined, this window keeps loading endlessly
        }

, в то время как URL-адрес входа в систему, бесконечно перезагружается, когда токен не определен

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Попробуйте проверить, есть ли уже на странице входа, что-то вроде этого условия ниже,

var currentUrl =  window.location.href;
if(currentUrl.indexOf('login') != -1){
    //Already login
}
else{
    //Not login
}
0 голосов
/ 29 мая 2018

Вы можете добавить ранний выход, если вы уже находитесь на странице входа в систему:

app.run(["$rootScope","$location", "$cookies", function($rootScope, $location, $cookies) {

if (window.location.href.match(/\/login/)) {
    return;
}

var token = $cookies.getObject('token');

if (token !== undefined) {
    $rootScope.user = token;
    // Commented this line out, because if there's a token, the user doesn't need to be redirected anywhere
    // $location.path(originalPath);
} else {
    alert("5900");
    $(location).attr('href', '/login');//when cookie token is not defined, this window keeps loading endlessly
}

PS Почему вы не используете $location.path('login') для перенаправления на страницу входа?$location.path является как установщиком, так и получателем, как указано в документации .

РЕДАКТИРОВАТЬ : строка с комментариями $location.path(originalPath); с пояснениями

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