app.controller('loginController',function($scope,$http, $window){
// console.log(1);
$scope.adminLogin = function() {
alert("aaaaaa");
var username=$scope.username;
var password=$scope.password;
if(username=="admin@admin.com" && password=="admin123")
{
window.location = '/PricePredictionUI/#/DASHBOARD';
}
else
{
$scope.message="Error";
$scope.messagecolor="alert alert-danger";
}
//window.location = '/PricePredictionUI/#/DASHBOARD';
};
});
以上是我的登录控制器。 我对angularjs很新。 我可以登录并登陆新页面 现在我需要为我的登录表单维护会话。 怎么做?
答案 0 :(得分:2)
如果我理解正确,即使关闭标签并稍后重新打开,您也需要保持身份验证。
简短回答: - 使用window.localStorage。在成功登录尝试时创建令牌,将其保存在localstorage中,并在每次加载页面时检查。
长 - 简答: - 这不涉及硬编码用户信用。查找无状态身份验证,如JWT或基于Cookie的解决方案。这些invovle服务器端令牌/ cookie被创建,通过您的REST服务头传递并保存在浏览器的本地存储中。我个人喜欢JWT,因为它的开销较小。
希望有所帮助!
编辑: - 稍微更新一段代码。可能有拼写错误。尝试使用UI-Router而不是Windows重定向。
app.controller('loginController',['$scope','$http', function($scope,$http){
//Check if localStorage contains authToken
(window.localStorage.getItem('authToken') == 'success')? 'redirect - to - your page ' : 'Go - to - login';
$scope.adminLogin = function() {
if($scope.username=="admin@admin.com" && $scope.password=="admin123"){
window.localStorage.setItem('authToken', 'success');
window.location = '/PricePredictionUI/#/DASHBOARD';
}else{
$scope.message="Error";
$scope.messagecolor="alert alert-danger";
}
};
}]);