加载页面之前的AngularJS自动登录

Posted

技术标签:

【中文标题】加载页面之前的AngularJS自动登录【英文标题】:AngularJS autologin before page is loaded 【发布时间】:2017-04-09 17:49:47 【问题描述】:

我尝试在我的 AngularJS / ionic 移动应用中实现记住登录功能

问题: 登录页面始终在自动登录完成并开始过渡之前加载,因此您可以看到登录页面。

问题: JQM 中是否有类似 'pagebeforeshow' 的事件或其他直接加载 'home' 状态的方法?

我使用: 离子 1.3.1 角度 1.5.3 科尔多瓦 4.0.0

代码示例: 登录控制器:

function LoginController($scope, $http, $ionicModal, $state, $SessionStorage) 
    var vm = this;
    activate();

    function activate()
        vm.staylogged = JSON.parse(localStorage.staylogged || null);
        if(vm.staylogged)
            vm.remember = vm.staylogged; //vm.remember: checkbox in login form
            login();
        else
            // get some data from the server
        
    

    function login()
        if(vm.staylogged)
            //get login informations from localStorage
        

        $http(
            method: 'POST',
            url: vm.server +"?=GetLogin",
            headers: 
                'Content-Type': 'text/xml; charset=\"utf-8\"'
            ,
            data: soa
        ).then(function successCallback(response) 
            if(response.returnCode == 0)
                localStorage.setItem('staylogged', JSON.stringify(vm.remember));
                // safe login informations to local Storage for next use
                $state.go('tabs.home');
            
        , function errorCallback(response) 
            console.log(response);
        );
    

【问题讨论】:

看看使用 ui-router 库中提供的解析 【参考方案1】:

您可以按照以下方式进行-

在 app.js 中

.state('signin', 
       url: '/sign-in',
       templateUrl: 'templates/views/login.html',
       controller: 'LoginController',
       resolve: 
               // Do your code here will execute before page render
       
)

【讨论】:

我尝试了解决方法,但目前您似乎无法更改状态,因为当前状态仍在初始化...我应该使用“超时”-stage-change 之类的东西吗还是有另一种可能性来决定应该加载哪个状态?

以上是关于加载页面之前的AngularJS自动登录的主要内容,如果未能解决你的问题,请参考以下文章

JS+PHP实现登录后自动执行之前的操作

子控制器在angularjs中的父控制器api调用之前加载

CAS单点登录,怎么实现注册后自动登录。用java实现

使用存储的凭据自动登录 PhoneGap Onsen UI 应用程序

如何在 AngularJS 中“急切加载”服务? (在需要之前自动实例化它)

Android 如何使用 KComponent 完成自动登录验证