Rumah > pembangunan bahagian belakang > tutorial php > Cara melaksanakan pengurusan hak pengguna dengan PHP dan UniApp

Cara melaksanakan pengurusan hak pengguna dengan PHP dan UniApp

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-07-04 09:22:01
asal
1701 orang telah melayarinya

Cara PHP dan UniApp melaksanakan pengurusan hak pengguna

Dalam pembangunan web, pengurusan hak pengguna ialah fungsi yang sangat penting. Ia boleh mengawal hak akses pengguna kepada fungsi dan sumber yang berbeza dalam sistem dan memastikan keselamatan dan integriti sistem. Artikel ini akan memperkenalkan cara menggunakan PHP dan UniApp untuk melaksanakan pengurusan hak pengguna, dengan contoh kod yang sepadan.

1. Reka bentuk pangkalan data

Sebelum kita mula, kita perlu mereka bentuk pangkalan data untuk menyimpan maklumat berkaitan pengguna dan kebenaran. Berikut ialah reka bentuk pangkalan data yang ringkas:

  1. Jadual pengguna (pengguna): digunakan untuk menyimpan maklumat asas pengguna, termasuk ID pengguna, nama pengguna, kata laluan, dsb.
  2. Jadual peranan (peranan): digunakan untuk menyimpan maklumat peranan, termasuk ID peranan, nama peranan, dsb.
  3. Jadual kebenaran (kebenaran): digunakan untuk menyimpan maklumat kebenaran fungsi dan sumber dalam sistem, termasuk ID kebenaran, nama kebenaran, dsb.
  4. Jadual perkaitan peranan pengguna (peranan_pengguna): digunakan untuk mewujudkan perkaitan antara pengguna dan peranan.
  5. Jadual persatuan kebenaran peranan (permission_permission): digunakan untuk mewujudkan perkaitan antara peranan dan kebenaran.

2. Pelaksanaan bahagian belakang PHP

  1. Pengesahan log masuk pengguna

Apabila pengguna log masuk, kami perlu mengesahkan sama ada nama pengguna dan kata laluan pengguna adalah betul. Berikut ialah contoh kod pengesahan log masuk mudah:

<?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']);
}
?>
Salin selepas log masuk
  1. Pengesahan kebenaran pengguna

Apabila mengesahkan kebenaran pengguna, kami perlu mencari kebenaran yang sepadan berdasarkan peranan pengguna. Berikut ialah contoh kod pengesahan kebenaran mudah:

<?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]);
}
?>
Salin selepas log masuk

3. Pelaksanaan bahagian hadapan UniApp

  1. Halaman log masuk pengguna

Pada halaman log masuk pengguna, kami perlu menghantar nama pengguna dan kata laluan yang dimasukkan oleh pengguna ke bahagian belakang untuk pengesahan, dan dapatkan token yang dikembalikan. Berikut ialah contoh kod halaman log masuk yang mudah:

<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>
Salin selepas log masuk
  1. Pengesahan kebenaran

Pada halaman yang perlu mengesahkan kebenaran pengguna, kami perlu menghantar token dan ID kebenaran pengguna ke bahagian belakang untuk pengesahan. Berikut ialah contoh kod pengesahan kebenaran mudah:

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;
      }
    });
  }
}
Salin selepas log masuk

Melalui kaedah di atas, kami boleh melaksanakan fungsi pengurusan kebenaran pengguna berdasarkan PHP dan UniApp. Apabila pengguna log masuk, kami mengesahkan nama pengguna dan kata laluan pengguna dan menjana token untuk kembali kepada klien. Pelanggan menyimpan token secara tempatan dan menghantarnya ke bahagian belakang untuk pengesahan di mana kebenaran pengesahan diperlukan. Bahagian belakang mencari peranan dan kebenaran yang sepadan dengan pengguna berdasarkan token dan mengembalikan hasil pengesahan kebenaran kepada pelanggan.

Saya harap artikel ini dapat membantu anda memahami cara PHP dan UniApp melaksanakan pengurusan hak pengguna. Sudah tentu, mungkin terdapat keperluan yang lebih kompleks dalam projek sebenar, tetapi idea terasnya adalah sama. Selagi kami mengikut reka bentuk pangkalan data yang baik dan logik kod yang munasabah, kami boleh melaksanakan sistem pengurusan hak pengguna yang selamat dan boleh dipercayai.

Atas ialah kandungan terperinci Cara melaksanakan pengurusan hak pengguna dengan PHP dan UniApp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan