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