Как предотвратить отображение страницы входа после того, как пользователь вошел в систему и нажал кнопку "Назад" браузера, не используя ionic framework

Я новичок в платформе anglularjs. Я создаю log-in application, Я сталкиваюсь с проблемой, когда все идет хорошо, но я застрял в управлении, если пользователь уже вошел в систему и пытается открыть один и тот же URL в другой вкладке, он перенаправляет пользователя напрямую dashbord page(dashboard.html), но когда я нажимаю browser back buttonвместо перехода на предыдущую страницу открывается login page(login_admin.html), Сценарий выглядит следующим образом:

  1. localhost: 8080 -> он открывается -> login_admin.html (выполнено).

  2. ввод учетных данных и отправка -> открытие -> dashboard.html (выполнено).

  3. при вводе того же URL-адреса (localhost:8080) на другой вкладке (предположим, ранее открывшийся facebook.com) ---> opens -> dashbord.html (выполнено).

  4. при нажатии кнопки браузера назад, а не идти facebook.com, он открывает login_admin.html (неразрешенный). предложите какое-нибудь решение, пожалуйста.

мой код JS выглядит следующим образом:

var app=angular.module('myApp', ['ngRoute','ngCookies']);
console.log("in appnew.js")

app.config(function($routeProvider,$locationProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider
    .when('/',{
        templateUrl:  'login_admin.html',
        controller: 'userController'


    })
    .when('/dashboard',{
        templateUrl: 'dashboard.html',
        controller: 'userController',
        authenticated: true


    })
    .when('/logout',{
        templateUrl: 'logout_admin.html',
         controller: 'userController'


    })
    .otherwise({
       redirectTo: "/"
    });
});

app.controller('userController',function($scope,$location,userModel){

    angular.extend($scope,{
      login: function(adminfrm){
        var data={
        jeeb_no: $scope.admin.name,
        password: $scope.admin.password
    };


      userModel.login(data).then(function(){
        $location.path('/dashboard');
      });
      },
      logout: function(){
        userModel.doUserLogout();
        $location.path('/');
      }
    });


});

app.run(["$rootScope",'$location','userModel', function($rootScope,$location,userModel,$window){
    $rootScope.$on('$routeChangeSuccess', function(event, next, current){
        console.log("event: %j",event);
        console.log("next: %j",next);
        console.log('current: %j',current);
      if (next.$$route.authenticated) {
          console.log("next.$$route.authenticated"+next.$$route.authenticated);
          console.log('userModel.getAuthStatus app.run if 1'+userModel.getAuthStatus());


        if (!userModel.getAuthStatus()) {
            console.log("getAuthStatus"+userModel.getAuthStatus);
            console.log('userModel.getAuthStatus app.run if 1(1)'+userModel.getAuthStatus());
            $location.path('/');
        }
      }

      if (next.$$route.originalPath =='/') {
        console.log("next.$$route.originalPath  "+next.$$route.originalPath);
        if (userModel.getAuthStatus()) {
            console.log("current "+current);
            console.log("next "+next);
            next.$$route.originalPath = '/dashboard'
            $location.path(next.$$route.originalPath);

        }
    }
});
}]);



app.factory('userModel', function($http,$cookies,$location){
   var userModel={};
   userModel.login= function(loginfrm){
    data={
      jeeb_no: loginfrm.jeeb_no,
      //password: loginfrm.jeeb_no
    };
     $cookies.put('auth',data);
    console.log("loginfrm"+loginfrm);
    return $http.post("http://1/admin_login", data).
    success(function(response){

       /*console.log('$scope.dynamic1: %j', $scope);*/
       console.log("response success: %j",response)

    }).
    error(function(response){
        console.log("response error:",response);
    });
   };
    userModel.getAuthStatus = function(){
        var status = $cookies.get('auth');
        console.log('status: %j', status);
        if(status){
            return true;
        }
        else{
            return false;
        }
    };
    console.log('userModel.getAuthStatus'+userModel.getAuthStatus());
    userModel.doUserLogout = function(){
        $cookies.remove('auth');
    }
    console.log("userModel: %j",userModel);
    return userModel;
})

0 ответов

Другие вопросы по тегам