【问题标题】:How to implement roles in AngularJs如何在 AngularJs 中实现角色
【发布时间】:2017-11-09 21:59:53
【问题描述】:

我正在使用 angularJS 和 php 后端开发应用程序,我需要识别 2 个角色,客户端和管理员,每个角色都有完全不同的空间。所以我认为身份验证步骤中的一个简单的“if”条件可以解决问题。

要理解代码:

身份验证是通过从两张表中检查用户的电子邮件和密码来完成的:一张admin表和一张client表,每张表包含一个“admin”角色列用于“admin”,“client”角色用于“client” " 表。

问题:

如何在select的结果上加上if条件,然后如果角色是admin:会进入admin空间,如果是client,反之。

我想做什么:

登录.php

 <?php  

$data = json_decode(file_get_contents("php://input"));

 $connect = mysqli_connect("localhost", "root", "", "test");  

 if(count($data) > 0)  

 { 

$Email=mysqli_real_escape_string($connect, $data->Email);
$mdp=mysqli_real_escape_string($connect, $data->mdp);

$query = 'SELECT * FROM `client`,`admin` WHERE (EmailClient = "'.$Email.'" AND   mdp= "'.$mdp.'") OR (EmailaAdmin = "'.$Email.'" AND   MdpAdmin= "'.$mdp.'")';

$q = mysqli_query($connect , $query);

if(mysqli_num_rows($q) > 0 )
  { 
       $_SESSION["logged_in"] = true; 
       $_SESSION["naam"] = $Email; 
       $result['code'] = 200;
       $result['message'] ='Logged In';
  }
  else
  {
       $result['code'] = 603;
       $result['message'] ='The username or password are incorrect!';
  }

$resultstring = json_encode($result);
$resultstring = str_replace("null",'""',$resultstring);
echo $resultstring;
}

?>

app.js

app.controller('loginCtrl', function($scope, $location,$state,$http,$window){

    $scope.submit = function()
    {
        data = {
            'Email' : $scope.Email,
            'mdp' : $scope.mdp
        };

        $http.post('http://localhost/test/login.php', data)
        .success(function(data, status, headers, config,result)
        {
            console.log(data);
            if(data.code == 200){
              if(data.role=client){
                $state.go('client');
              }
              else{
                $state.go('admin');
              }
          }
          else{
            alert('incorrect');
          }
        })
        .error(function(data, status, headers, config, rsult)
        {   

            console.log('error');

        });
    }

});

提前致谢

【问题讨论】:

    标签: php angularjs ionic-framework


    【解决方案1】:

    一个简单的方法可能是

    <?php
        $data       = json_decode(file_get_contents("php://input"));
        $connect    = mysqli_connect("localhost", "root", "", "test");
        if(count($data) > 0)
        { 
    
            $Email      = mysqli_real_escape_string($connect, $data->Email);
            $mdp        = mysqli_real_escape_string($connect, $data->mdp);
            $query      = 'SELECT * FROM `admin` WHERE (EmailClient = "'.$Email.'" AND   mdp= "'.$mdp.'") OR (EmailaAdmin = "'.$Email.'" AND   MdpAdmin= "'.$mdp.'")';
            $q          = mysqli_query($connect , $query);
            if(mysqli_num_rows($q) > 0 )
            { 
                $_SESSION["logged_in"] = true; 
                $_SESSION["naam"] = $Email; 
                $result['code'] = 200;
                $result['message'] ='Logged In';
                $result['role'] ='admin';
                $resultstring = json_encode($result);
                $resultstring = str_replace("null",'""',$resultstring);
                echo $resultstring;
                exit;
            }
            $query2     = 'SELECT * FROM `client` WHERE (EmailClient = "'.$Email.'" AND   mdp= "'.$mdp.'") OR (EmailaAdmin = "'.$Email.'" AND   MdpAdmin= "'.$mdp.'")';
            $q2         = mysqli_query($connect , $query2);
            if(mysqli_num_rows($q2) > 0 )
            { 
                $_SESSION["logged_in"] = true; 
                $_SESSION["naam"] = $Email; 
                $result['code'] = 200;
                $result['message'] ='Logged In';
                $result['role'] ='client';
                $resultstring = json_encode($result);
                $resultstring = str_replace("null",'""',$resultstring);
                echo $resultstring;
                exit;
            }
            $result['code'] = 603;
            $result['message'] ='The username or password are incorrect!';
            $resultstring = json_encode($result);
            $resultstring = str_replace("null",'""',$resultstring);
            echo $resultstring;
            exit;
        }
    

    并通过if(data.role=='client'){ //clientif(data.role=='admin'){ //admin 担任角度检查角色

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 2013-04-08
      相关资源
      最近更新 更多