AngularJS用户登录到Json文件

Posted

技术标签:

【中文标题】AngularJS用户登录到Json文件【英文标题】:AngularJS User Login to Json file 【发布时间】:2017-08-14 16:42:31 【问题描述】:

我目前正在尝试创建一个用户登录页面,其中用户信息存储在 json 文件中。我已经为文件创建了 GET 方法,但在用户成功登录后我似乎无法重定向。你能帮帮我吗?

我知道在客户端完成的用户登录和验证是一个坏主意,但这就是我想要的方式,而不使用数据库。

这是我的 html 代码:

<body ng-controller="myCtrl">
    <form id="login-form">
            <h3>User Login</h3>
                   <div class="form-group">
                    <label for="email">Email address:</label>
                    <input type="email" class="form-control" id="email">
                    </div>

                  <div class="form-group">
                    <label for="pwd">Password:</label>
                    <input type="password" class="form-control" id="pwd">
                  </div>
                  <button type="submit" class="btn btn-default" id="login-button" ng-click="LogOn()">Login</button>
        </form>
</body>

我的 javascript 代码:

var app = angular.module('myApp', [ ]);
                app.controller("myCtrl",['$scope', '$http', function($scope, $http)
                $scope.LogOn = function()
                    $http.get('data.json').then(function(data)
                    $scope.users = data;
                    );
     if (data.email == email) && (data.password = password
            window.location.href = 'www.google.com';
                       
                    ;  
                ]);

我的 JSON 文件:

[
    
        "email":"something@yahoo.com",
        "Password":"password"
    ,
    
        "email":"test@yahoo.com",
        "password":"test999"
    ,
    
        "email":"xxx@mail.xx",
        "password":"xxx"
    
]

【问题讨论】:

你可能想看看 ngRoute 或 ui.router。 【参考方案1】:

显然if 波纹管必须在.then( 回调中

if (data.email == email && data.password == password) 
   window.location.href = 'www.google.com';

【讨论】:

Uncaught ReferenceError: Invalid left-hand side in assignment - if (data.email == email) &amp;&amp; (data.password = password) 是的,但是首先检查代码是否运行是给出实际工作答案的重要部分。谢谢你的努力'【参考方案2】:

然后把重定向代码放在里面

$http.get('data.json').then(function(data)
          $scope.users = data;
          if (data.email == email && data.password == password) 
            window.location.href = 'www.google.com';
             
);

【讨论】:

您正在将一组数据与两个字符串进行比较。如果您希望能够进入您的 if 堆栈,则需要循环用户并匹配每个用户和密码。【参考方案3】:

请尝试打开链接并检查并运行部署在 w3 学校的代码 https://www.w3schools.com/code/tryit.asp?filename=FDVZY3NXVYG6

【讨论】:

以上是关于AngularJS用户登录到Json文件的主要内容,如果未能解决你的问题,请参考以下文章

如何获取登录用户 SpringSecurity + AngularJS 的用户信息

Angularjs 用户界面路由器。如何重定向到登录页面

使用 Cordova 和 Angularjs 登录 Twitter:401 未经授权的错误

即使使用 AngularJS 和 PHP 的凭据不正确,登录仍然会指示

json的登录信息怎么写

AngularJs - 限制“登录”用户访问的最佳方式