javascript - 如何维护登录表单的 session

标签 javascript angularjs session

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';


        };
});

上面是我的登录 Controller 。 我对 AngularJS 还很陌生。 我能够登录并登陆新页面 现在我需要维护登录表单的 session 。 怎么办?

最佳答案

如果我理解正确,即使您关闭选项卡并稍后重新打开它,您也需要持续进行身份验证。

简短回答:- 使用 window.localStorage 。在成功登录尝试时创建一个 token ,将其保存在本地存储中并在每次页面加载时进行检查。

长-短答案:-这不涉及对用户信用进行硬编码。查找无状态身份验证,例如基于 JWT 或 Cookie 的解决方案。这些涉及服务器端 token /cookie 的创建、通过 REST - 服务 header 传递并保留在浏览器的本地存储中。我个人喜欢 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";
        }    
     };
}]);

关于javascript - 如何维护登录表单的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40709907/

相关文章:

javascript - OOP 继承和对象实例

javascript - 根据Javascript数据渲染页面的正确方法

angularjs - 是否可以使用范围变量 angularjs 解析字符串?

jquery - 无法读取 Angular 数据表中未定义的属性 'aDataSort'

angularjs - Angular 指令在正确渲染时报告有关 SVG 属性的错误

hibernate - 非事务性 GroovyTestCase 集成测试中的 GORM 事务

javascript - 当从不同系统/浏览器同时调用同步方法时,两条记录会插入数据库中

javascript - 无法理解带有 "this"关键字的函数的行为

php - Zend\Session\Container Session 验证失败异常 -- Object(Closure) ZF2

php - mysqli_stmt_num_rows($stmt) 总是返回 0?