无法在登录页面中显示错误的密码

时间:2017-03-09 15:09:04

标签: html angularjs

我有一个带有烧瓶后端和角形前端的应用程序。显然,当输入错误的密码时,我想显示错误信息。我已经尝试过ng-show和ng-如果两者似乎都没有用。 这是我的登录页面的HTML -

<div layout="column" layout-align="center center" class="">
  <img class="logo" ng-src="assets/images/logo.png">
  <h1 class="md-display-2 login-heading">Login to Bassa</h1>
  <div layout="row">
    <md-input-container>
      <label>User name</label>
      <input type="text" ng-model="user.user_name"/>
    </md-input-container>
    <md-input-container>
      <label>Password</label>
      <input type="password" ng-model="user.password" ng-enter="login()"/>
    </md-input-container>
    <br>
  </div>
  <div>
    <md-button class="md-raised md-primary" ng-click="login()">Login</md-button>
    <md-button class="md-raised md-primary" ng-click="signup()">Signup</md-button>
</div>
这是登录控制器 -

(function(){
  'use strict';
  angular
    .module('app')
    .controller('LoginCtrl', ['$scope', '$state', 'UserService', LoginCtrl]);

  function LoginCtrl($scope, $state, UserService) {
    $scope.user = {};
    $scope.incorrectCredentials = false;

    $scope.login = function(){
      UserService.login($scope.user, function(status) {
        if (status){
          $state.go('home.dashboard');
        } else {
          $scope.incorrectCredentials = true;
        }
      });
    };

    $scope.signup = function() {
      $state.go('signup');
    };

    UserService.removeToken();
  }

})();

当incorrectCredentials变为true时,我想显示一条消息。 记录用户服务后 -

  var login = function(credentials, cb) {
  var $http = $injector.get('$http');

  return $http({
      method: 'POST',
      url: BassaUrl + '/api/login',
      transformRequest: function(obj) {
        var str = [];
        for(var p in obj)
        str.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p]));
        return str.join('&');
      },
      data: credentials,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
  }).then(function (response) {
    setToken(response.headers()['token']);
    setName(credentials.user_name);
    setAuthLevel(response.data.auth);
    console.log(response);
    cb(true);
  }, function(error){
    console.log("hello i am here")
    cb(false);
  });
};

我收到了回复日志 -

Object {data: "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final/…ead-protected or not readable by the server.</p>↵", status: 403, config: Object, statusText: "FORBIDDEN"}

它没有输入错误块,这阻止我提示错误的密码信息。

1 个答案:

答案 0 :(得分:0)

这实际上是我自己的错。我的自定义拦截器只是吞下了身份验证错误。

相关问题