加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如果用户已登录离子,如何跳过登录页面

发布时间:2020-12-17 18:04:49 所属栏目:安全 来源:网络整理
导读:嗨,我是离子框架的新手.我在离子中使用会话管理器.但是如果用户已经登录,我想跳过登录页面. app.js angular.module('grocery',['ionic','grocery.controller','ngCordova','ngCordovaOauth']).run(function($ionicPlatform,$cordovaSQLite,$cordovaToast,$ro
嗨,我是离子框架的新手.我在离子中使用会话管理器.但是如果用户已经登录,我想跳过登录页面.

app.js

angular.module('grocery',['ionic','grocery.controller','ngCordova','ngCordovaOauth'])

.run(function($ionicPlatform,$cordovaSQLite,$cordovaToast,$rootScope,mainItemsList,$state) {
    $ionicPlatform.ready(function() {
        if (window.cordova && window.cordova.plugins.Keyboard) {

            cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);

            stops the viewport
            // from snapping when text inputs are focused. Ionic handles this internally for
            // a much nicer keyboard experience.
            cordova.plugins.Keyboard.disableScroll(true);
        }
        if (window.StatusBar) {
            StatusBar.styleDefault();
        }

    });


});


$rootScope.$on('$locationChangeStart',function(event,newUrl,oldUrl) {
    if (mainItemsList.isLoggedIn() != true) {
        $state.go('app.login');
    }



})


.config(function($stateProvider,$urlRouterProvider) {

    $stateProvider
        .state('app',{
            url: "/app",abstract: true,templateUrl: "templates/navigationDrawer.html",controller: 'AppCtrl'
        })

    .state('app.masterList',{
        url: "/masterList",views: {
            'menuContent': {
                templateUrl: "templates/masterList.html",controller: 'indexCtrl'
            }
        }
    })


    .state('app.login',{
        url: "/login",views: {
            'menuContent': {
                templateUrl: "templates/login.html",controller: 'loginCtrl'
            }
        }
    })

    .state('app.register',{
        url: "/register",views: {
            'menuContent': {
                templateUrl: "templates/register.html",controller: 'registerCtrl'
            }
        }
    })


    $urlRouterProvider.otherwise("/app/masterList");


});


angular.module('grocery.services',[])
    .factory('mainItemsList',function($cordovaSQLite,$cordovaPreferences) {
        return {
            isLoggedIn: function(sessionEmail) {

                $cordovaPreferences.store('email',sessionEmail).success(function(value) {
                        //$cordovaToast.showShortTop('stored');
                    })
                    .error(function(error) {
                        $cordovaToast.showShortTop("Error " + error);
                    })


                return true;
            }


        }
    })

我尝试了现有的stackoverflow答案.但不行.请帮我,我错了.

解决方法

创建一个新控制器和一个名为autologin的新状态.将此设为默认状态.在自动登录控制器中,检查用户是否已登录.如果是,则重定向到某个页面.如果不是,请重定向登录.

.state('app.autologin',{
    url: "/autologin",controller: 'autologinCtrl'
  })

$urlRouterProvider.otherwise("/app/autologin");

控制器:

angular.module('grocery').controller('autologinCtrl,function($scope,$state){
    //check if user is logged in
    if (userLoggedIn){
        state.go('app.masterList');
    } else {
        state.go('app.login');
    }
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读