Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs+php身份验证_Javascript_Php_Angularjs - Fatal编程技术网

Javascript AngularJs+php身份验证

Javascript AngularJs+php身份验证,javascript,php,angularjs,Javascript,Php,Angularjs,嗨,我开始学习AngularJs,现在我尝试使用angular和php来完成我的登录模块,但我有一些问题。我看了很多教程,但没有一个对我有帮助,所以这里是我的:controllers.js: var controllers = angular.module('controllers', []); controllers.controller('loginController', ['$scope', '$http', 'UserService', function(scope, $h

嗨,我开始学习AngularJs,现在我尝试使用angular和php来完成我的登录模块,但我有一些问题。我看了很多教程,但没有一个对我有帮助,所以这里是我的:controllers.js:

var controllers = angular.module('controllers', []);     

controllers.controller('loginController', ['$scope', '$http', 'UserService', function(scope, $http, User) {
scope.main = [
    {username: '', password: ''}
]

scope.login = function(){
    var config = {
        url: '../auth/login.php',
        method: 'POST',
        data: {
            username: scope.main.username,
            password: scope.main.password
        },
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }

    $http(config)
    .success(function(data,status,headers,config){
        if(data.status){
            //succefull login
            User.isLogged = true;
            User.username = data.username;
        }
        else{
            User.isLogged = false;
            User.username = '';
        }
    })
    .error(function(data,status,headers,config){
        User.isLogged = false;
        User.username = '';
    });
}
}])
auth.js:

var services = angular.module('services', []);

services.factory('UserService', [function(){
    var sdo = {
        isLogged: false,
        username: ''
    };
    return sdo;
}]);
login.php:

$username = $_POST['username'];
if($username){
    return "Logged";
}else{
    return false;
}
以及html:

<div class="col-xs-12" id="loginCol" ng-controller="loginController">
   <form ng-submit='login()' name="form" novalidate>
      <div class="form-group">
         <label for="username" class="sr-only">Username</label>
         <input type="text" ng-model="scope.main.username" class="form-control" id="username" placeholder="Име..." />
         <label for="password" class="sr-only">Password</label>
         <input type="password" ng-model="scope.main.password" class="form-control" id="password" placeholder="Парола..." />
      </div>

      <div class="form-group pull-right">
         <button type="button" class="btn btn-primary">Login</button>
         <button type="button" class="btn btn-default">Register</button>
      </div>
   </form>
</div>

在本例中,我希望用户在用户名输入中键入一些内容,然后点击login按钮,并在成功调用login.php时返回一些消息。问题是,像这样编写的代码“loginController”不是一个函数,没有定义如何修复它?

您已经创建了应用程序

var controllers = angular.module('controllers', []);   
但是没有在html代码中使用它,将ng app属性添加到包装器div

<div class="col-xs-12" ng-app="controllers" id="loginCol" ng-controller="loginController">

或者将ng click=login属性添加到按钮,并从创建应用程序的表单中删除ng submit='login'

var controllers = angular.module('controllers', []);   
但是没有在html代码中使用它,将ng app属性添加到包装器div

<div class="col-xs-12" ng-app="controllers" id="loginCol" ng-controller="loginController">
或者将ng click=login属性添加到按钮,并从表单中删除ng submit='login'。

披露:我是UserApp的开发者之一

您可以尝试第三方服务,同时使用

检查一下,或者坐火车。以下是它如何工作的一些示例:

带有错误处理的登录表单:

.Others路由应设置为您希望用户在登录后重定向到的位置。例如:

$routeProvider。否则{重定向到:'/home'}

注销链接:

访问用户属性:

使用用户服务访问用户信息,例如:User.current.email

或者在模板中:{{user.email}

隐藏仅在登录时可见的元素:

欢迎{{user.first_name}}

根据权限显示元素:

你是管理员

要对后端服务进行身份验证,只需使用user.token获取会话令牌并将其与AJAX请求一起发送即可。在后端,使用和检查令牌是否有效

如果您需要任何帮助,请告诉我:

披露:我是UserApp的开发者之一

您可以尝试第三方服务,同时使用

检查一下,或者坐火车。以下是它如何工作的一些示例:

带有错误处理的登录表单:

.Others路由应设置为您希望用户在登录后重定向到的位置。例如:

$routeProvider。否则{重定向到:'/home'}

注销链接:

访问用户属性:

使用用户服务访问用户信息,例如:User.current.email

或者在模板中:{{user.email}

隐藏仅在登录时可见的元素:

欢迎{{user.first_name}}

根据权限显示元素:

你是管理员

要对后端服务进行身份验证,只需使用user.token获取会话令牌并将其与AJAX请求一起发送即可。在后端,使用和检查令牌是否有效


如果您需要任何帮助,请告诉我:

您应该完成角度教程以及来自egghead.io的一些视频培训。你的问题表明你缺乏对框架的了解,这是必须的。是的,我知道,但没有视频教程真正展示如何进行简单的登录。有一些关于身份验证的文章,但我不能理解,这就是为什么我在这里问这个问题。如果你能给我看一些教程,我很乐意阅读或观看。一些关于特定技术的简短介绍视频:介绍框架工作流程的教程:如何创建php文件?你应该完成Angular教程以及来自egghead.io的一些视频培训。你的问题表明你缺乏对框架的了解,这是必须的。是的,我知道,但没有视频教程真正展示如何进行简单的登录。有一些关于身份验证的文章,但我不能理解,这就是为什么我在这里问这个问题。如果你能给我看一些教程,我很乐意阅读或观看。一些关于特定技术的简短介绍视频:介绍框架工作流程的教程:如何创建php文件?是的,arror消失了,但现在当我点击login nothing Happend是的,arror消失了,但现在当我点击login nothing Happed时,不会说谎。。。。这实际上看起来是任何启动Angular应用程序的好地方。我一定会在一些重大的项目中考虑这个问题,不要说谎。这实际上看起来是任何启动Angular应用程序的好地方。我一定会在一些重要的项目中考虑到这一点。
<form ua-signup ua-error="error-msg">
  <input name="first_name" placeholder="Your name"><br>
  <input name="login" ua-is-email placeholder="Email"><br>
  <input name="password" placeholder="Password" type="password"><br>
  <button type="submit">Create account</button>
  <p id="error-msg"></p>
</form>
$routeProvider.when('/login', {templateUrl: 'partials/login.html', public: true, login: true});
$routeProvider.when('/signup', {templateUrl: 'partials/signup.html', public: true});