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:
2. Pelaksanaan bahagian belakang PHP
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']); } ?>
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]); } ?>
3. Pelaksanaan bahagian hadapan UniApp
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>
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; } }); } }
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!