Maison  >  Article  >  développement back-end  >  Comment implémenter la gestion des droits des utilisateurs avec PHP et UniApp

Comment implémenter la gestion des droits des utilisateurs avec PHP et UniApp

WBOY
WBOYoriginal
2023-07-04 09:21:241643parcourir

Comment PHP et UniApp implémentent la gestion des droits des utilisateurs

Dans le développement Web, la gestion des droits des utilisateurs est une fonction très importante. Il peut contrôler les droits d'accès des utilisateurs à différentes fonctions et ressources du système et garantir la sécurité et l'intégrité du système. Cet article présentera comment utiliser PHP et UniApp pour implémenter la gestion des droits des utilisateurs et sera accompagné d'exemples de code correspondants.

1. Conception de la base de données

Avant de commencer, nous devons d'abord concevoir une base de données pour stocker les informations relatives aux utilisateurs et aux autorisations. Ce qui suit est une conception de base de données simple :

  1. Table utilisateur (utilisateur) : utilisée pour stocker les informations de base des utilisateurs, notamment l'ID utilisateur, le nom d'utilisateur, le mot de passe, etc.
  2. Table des rôles (role) : utilisée pour stocker les informations sur le rôle, y compris l'ID du rôle, le nom du rôle, etc.
  3. Table d'autorisation (autorisation) : utilisée pour stocker les informations d'autorisation des fonctions et des ressources du système, y compris l'ID d'autorisation, le nom de l'autorisation, etc.
  4. Table d'association des rôles utilisateur (user_role) : utilisée pour établir l'association entre les utilisateurs et les rôles.
  5. Table d'association des autorisations de rôle (role_permission) : utilisée pour établir l'association entre les rôles et les autorisations.

2. Implémentation du backend PHP

  1. Vérification de la connexion utilisateur

Lorsqu'un utilisateur se connecte, nous devons vérifier si son nom d'utilisateur et son mot de passe sont corrects. Voici un exemple simple de code de vérification de connexion :

<?php
// 获取用户提交的用户名和密码
$username = $_POST['username'];
$password = $_POST['password'];

// 查询数据库验证用户信息
$query = "SELECT * FROM user WHERE username='$username' AND password='$password'";
$result = mysqli_query($connection, $query);

// 如果查询结果有一条记录,则登录成功;否则登录失败
if (mysqli_num_rows($result) == 1) {
    // 登录成功,生成并返回一个token给客户端
    $token = generateToken($username);
    echo json_encode(['status' => 'success', 'token' => $token]);
} else {
    // 登录失败
    echo json_encode(['status' => 'failed', 'message' => 'Invalid username or password']);
}
?>
  1. Vérification des autorisations utilisateur

Lors de la vérification des autorisations utilisateur, nous devons trouver les autorisations correspondantes en fonction du rôle de l'utilisateur. Voici un exemple simple de code de vérification des autorisations :

<?php
// 获取用户提交的token和权限id
$token = $_POST['token'];
$permissionId = $_POST['permissionId'];

// 验证token是否有效
if (validateToken($token)) {
    // 查询用户对应的角色
    $query = "SELECT role_id FROM user_role WHERE user_id='$userId'";
    $result = mysqli_query($connection, $query);
    $roleIds = mysqli_fetch_all($result, MYSQLI_ASSOC);
    
    // 查询角色对应的权限
    $query = "SELECT * FROM role_permission WHERE role_id IN (" . implode(',', $roleIds) . ")";
    $result = mysqli_query($connection, $query);
    $permissions = mysqli_fetch_all($result, MYSQLI_ASSOC);
    
    // 验证用户是否具有该权限
    $hasPermission = false;
    foreach ($permissions as $permission) {
        if ($permission['permission_id'] == $permissionId) {
            $hasPermission = true;
            break;
        }
    }
    
    // 返回验证结果给客户端
    echo json_encode(['hasPermission' => $hasPermission]);
} else {
    // token无效
    echo json_encode(['hasPermission' => false]);
}
?>

3. Implémentation frontale d'UniApp

  1. Page de connexion de l'utilisateur

Sur la page de connexion de l'utilisateur, nous devons envoyer le nom d'utilisateur et le mot de passe saisis par l'utilisateur au backend pour vérification et obtenir le jeton retourné. Voici un exemple simple de code de page de connexion :

<template>
  <view>
    <input v-model="username" type="text" placeholder="Username" />
    <input v-model="password" type="password" placeholder="Password" />
    <button @click="login">Login</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    }
  },
  methods: {
    login() {
      // 发送登录请求给后端
      uni.request({
        url: '/api/login.php',
        method: 'POST',
        data: {
          username: this.username,
          password: this.password
        },
        success: (res) => {
          if (res.data.status === 'success') {
            // 登录成功,保存token到本地
            uni.setStorageSync('token', res.data.token);
            uni.navigateTo({
              url: '/pages/home/home'
            });
          } else {
            // 登录失败,提示错误信息
            uni.showToast({
              title: res.data.message,
              icon: 'none'
            });
          }
        }
      });
    }
  }
}
</script>
  1. Vérification des autorisations

Sur la page qui doit vérifier les autorisations de l'utilisateur, nous devons envoyer le jeton et l'ID d'autorisation de l'utilisateur au backend pour vérification. Voici un exemple simple de code de vérification des autorisations :

export default {
  data() {
    return {
      hasPermission: false
    }
  },
  mounted() {
    // 发送权限验证请求给后端
    uni.request({
      url: '/api/validatePermission.php',
      method: 'POST',
      data: {
        token: uni.getStorageSync('token'),
        permissionId: 1 // 需要验证的权限ID
      },
      success: (res) => {
        this.hasPermission = res.data.hasPermission;
      }
    });
  }
}

Grâce à la méthode ci-dessus, nous pouvons implémenter des fonctions de gestion des autorisations des utilisateurs basées sur PHP et UniApp. Lorsqu'un utilisateur se connecte, nous vérifions son nom d'utilisateur et son mot de passe et générons un jeton à retourner au client. Le client enregistre le jeton localement et l'envoie au backend pour vérification lorsque des autorisations de vérification sont requises. Le backend recherche le rôle et les autorisations correspondant à l'utilisateur en fonction du jeton et renvoie les résultats de la vérification des autorisations au client.

J'espère que cet article pourra vous aider à comprendre comment PHP et UniApp implémentent la gestion des droits des utilisateurs. Bien entendu, les projets réels peuvent présenter des exigences plus complexes, mais l’idée de base est la même. Tant que nous suivons une bonne conception de base de données et une logique de code raisonnable, nous pouvons mettre en œuvre un système de gestion des droits des utilisateurs sûr et fiable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn