0

I have 1 variable to save data user when they logged in.

Var : isLoginned

When user logged in, i set isLoginned = '1' and save to LocalStorage.

I want to use isLoginned to check when router changes.

Check access to this router when user logged in Only. If not logged in, redirect to page sign in.

This is example code in Ui router

 .state('access.page', {
    url: '/page',
    templateUrl: 'app/Components/Page/Page.html',
    onEnter: function ($storage.isLoginned) {
       if ($storage.isLoginned != '1') {
            $location.path('/access/signin');
       }
    },
    controller: function ($scope) {
       $scope.page.setTitle('Page title');
    }
 })

User Service

/**
 * Created by tatda_000 on 11/26/2014.
 */
'use strict';
app.factory('signinService', function ($http) {
    return {
        signin: function (user, scope) {
            //console.log('Test function');
            var $promise = $http.post('api/AccountController/Login', user); //post data to server
            $promise.then(function (msg) {
                //scope.msgtxt = msg.data;
                if (msg.data.Message != 'Success') scope.msgtxt = 'Tên tài khoản hoặc mật khẩu không đúng!';
                else scope.msgtxt = 'Success';
                //save user infomation to Local Storage

                scope.$storage.username = msg.data.Data.Username;
                scope.$storage.password = msg.data.Data.Password;
                scope.$storage.userToken = msg.data.Data.UserToken;
                scope.$storage.isLoginned = '1';

            });
        }
    }
});

User controller

'use strict';

/* Controllers */
// signin controller
app.controller('SigninController', ['$scope', '$localStorage', 'signinService', function ($scope, $localStorage, signinService) {
    //set page title
    $scope.page.setTitle('Đăng nhập');

    $scope.login = function (user) {

        signinService.signin(user, $scope); //call function login service


    };

    //create first value storage
    $scope.$storage = $localStorage.$default({
        username: "",
        userToken: ''
    });

    $scope.logout = function () {
        delete $scope.$storage.username;
        delete $scope.$storage.userToken;
    };

}]);
  • Regardles of the source (LocalStorage, $http and service singleton) there are few examples how to do that in UI-Router. Check [this](http://stackoverflow.com/a/26702638/1679310) for example – Radim Köhler Dec 13 '14 at 07:44
  • thank you, but i don't understand, i have to added file [code]User service[/code] and [code]User controller[/code]. Pls help me. I'm New bie @RadimKöhler – Dat Pham Tat Dec 13 '14 at 08:29
  • The best you can do, create a plunker. Place it into your question, and I am sure you'll get an answer. I strongly suggest: create a plunker with your example... – Radim Köhler Dec 13 '14 at 08:31

0 Answers0