Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安圭拉酒店;PHP登录_Php_Angularjs_Login Control - Fatal编程技术网

安圭拉酒店;PHP登录

安圭拉酒店;PHP登录,php,angularjs,login-control,Php,Angularjs,Login Control,我是angularjs的新手,我对登录过程有点困惑 每次登录时,我都会被重定向到特定页面。这已在代码中设置 我只想检查用户是否已登录。如果是,则重定向到--Home-- 如果未登录,请重定向到--再次登录-- 我应该用什么来做这个 我听说了本地存储。会话存储,我对它们不熟悉。 告诉我管理登录的方式 这是我的登录控制器 app.controller('AngularLoginController', ['$scope', '$http', function($scope, $http) {

我是angularjs的新手,我对登录过程有点困惑

每次登录时,我都会被重定向到特定页面。这已在代码中设置

我只想检查用户是否已登录。如果是,则重定向到--Home-- 如果未登录,请重定向到--再次登录--

我应该用什么来做这个

我听说了本地存储。会话存储,我对它们不熟悉。 告诉我管理登录的方式

这是我的登录控制器

app.controller('AngularLoginController', ['$scope', '$http', function($scope, $http) {   
    $scope.loginForm = function() {         
            $http.post("login.php", {
            'email' :$scope.inputData.email,
            'password':$scope.inputData.password
            }).success(function(data) {
                console.log(data);                  
                if ( data == 'correct') {
                window.location.href = 'welcome_dashboard.php';
                } 
            else {
                $scope.errorMsg = "Invalid Email and Password";
            }
        })
        }
}]);

您可以使用angular js的$cookieStore

成功登录后,您可以将登录设置为true

如果未定义('login')而不是登录页面上的重定向,请检查仪表板控制器

注销时,您需要删除此cookie$cookieStore.remove('login')

如果您使用routerprovider而不是使用resolve,则很容易检查登录与否这里是resolve的一个简单示例

function ($routeProvider) {
    $routeProvider.
        when('/', {
            controller: 'dashboardController',
            templateUrl: 'app/views/dashboard.html',
            resolve:{loggedIn:onlyLoggedIn}
         })
 }

var onlyLoggedIn = function ($location,$q,$cookieStore,$rootScope) {
    var deferred = $q.defer();
    if (typeof ($cookieStore.get("login")) === "undefined") {
        deferred.reject();
        window.location.href = 'login.html';
    }else{
        $rootScope.display = true;
        deferred.resolve();
    }
    return deferred.promise;

};

如果您有一个令牌,例如,如果您正在使用OAuth进行身份验证,那么您只能使用
localStorage
sessionStorage

在您的情况下,您可能会使用cookie和会话。因此,对于这个场景,您希望有某种方法来检查您是否已通过身份验证(因为您的会话或cookie可能已过期)

我会创建一个新的端点,例如
current_user.php
,如果您登录或未登录,它会返回true或false(甚至是当前用户的详细信息)。然后,您希望在任何希望对用户进行身份验证的请求之前调用它)


您还需要处理任何返回数据的请求,这些数据要求用户通过
失败
回调进行身份验证,如果您获得401,回调也会重定向用户。

您可能不再登录。例如,会话已过期。在何处保留此onlyLoggedIn功能?控制员?你现在面临什么问题?
function ($routeProvider) {
    $routeProvider.
        when('/', {
            controller: 'dashboardController',
            templateUrl: 'app/views/dashboard.html',
            resolve:{loggedIn:onlyLoggedIn}
         })
 }

var onlyLoggedIn = function ($location,$q,$cookieStore,$rootScope) {
    var deferred = $q.defer();
    if (typeof ($cookieStore.get("login")) === "undefined") {
        deferred.reject();
        window.location.href = 'login.html';
    }else{
        $rootScope.display = true;
        deferred.resolve();
    }
    return deferred.promise;

};