Bagaimana untuk menggunakan fungsi PHP untuk melaksanakan log masuk tunggal dan pengesahan kebenaran untuk log masuk dan log keluar pengguna?
Dengan perkembangan Internet, semakin banyak laman web atau aplikasi memerlukan pengguna untuk log masuk untuk mendapatkan perkhidmatan yang lebih diperibadikan atau meningkatkan pengalaman pengguna. Untuk berbilang tapak web atau aplikasi, jika setiap satu memerlukan pengesahan log masuk dan kebenaran yang berasingan, ia akan menyebabkan kesulitan kepada pengguna. Oleh itu, konsep Single Sign-On (SSO) wujud. Artikel ini akan memperkenalkan cara menggunakan fungsi PHP untuk melaksanakan log masuk tunggal dan pengesahan kebenaran serta memberikan contoh kod yang sepadan.
<?php session_start(); // 开启SESSION // 用户登录操作 function userLogin($username, $password) { // 根据用户名和密码判断用户是否合法 if ($username === 'admin' && $password === 'password') { $_SESSION['username'] = $username; // 将用户名存储到SESSION中 return true; } else { return false; } } // 用户注销操作 function userLogout() { unset($_SESSION['username']); // 从SESSION中删除用户名 session_destroy(); // 销毁SESSION return true; } ?>
<?php session_start(); // 开启SESSION // 用户登录操作 function userLogin($username, $password) { // 根据用户名和密码判断用户是否合法 if ($username === 'admin' && $password === 'password') { $_SESSION['username'] = $username; // 将用户名存储到SESSION中 // 将会话ID存储到Cookie中,设置过期时间为7天 setcookie('session_id', session_id(), time()+7*24*60*60, '/', 'sso.example.com'); return true; } else { return false; } } // 用户注销操作 function userLogout() { unset($_SESSION['username']); // 从SESSION中删除用户名 session_destroy(); // 销毁SESSION // 删除存储在Cookie中的会话ID setcookie('session_id', '', time()-1, '/', 'sso.example.com'); return true; } ?>
Dalam contoh di atas, fungsi setcookie()
digunakan untuk menetapkan Cookie. Parameter session_id
menentukan nama kuki Fungsi session_id()
mengembalikan ID sesi semasa time()+7*24*60*. 60
digunakan Jika masa tamat tempoh ditetapkan kepada 7 hari, '/'
bermakna kuki tersedia dalam direktori akar tapak web dan 'sso.example. com'
bermakna kuki boleh digunakan dalam contoh Semua hos di bawah nama domain .com
. setcookie()
函数用于设置Cookie。参数session_id
指定Cookie的名称,session_id()
函数返回当前会话的ID,time()+7*24*60*60
用于设置过期时间为7天,'/'
表示Cookie在网站的根目录下可用,'sso.example.com'
表示Cookie可用于example.com
域名下的所有主机。
<?php session_start(); // 开启SESSION // 验证用户是否已登录 function isUserLoggedIn() { // 判断SESSION中是否存储了用户名 return isset($_SESSION['username']); } // 验证用户是否拥有某个权限 function hasPermission($permission) { // 根据用户名查询用户权限表,判断用户是否拥有该权限 $userPermissions = ['view', 'edit', 'delete']; return in_array($permission, $userPermissions); } ?>
以上示例中,isUserLoggedIn()
函数判断SESSION中是否存储了用户名,用于验证用户是否已登录。hasPermission($permission)
Satu lagi bahagian penting dalam log masuk tunggal ialah pengesahan kebenaran. Secara umumnya, setiap laman web atau aplikasi mempunyai sistem kebenaran bebasnya sendiri. Kita boleh menggunakan fungsi PHP untuk pengesahan kebenaran. Berikut ialah contoh kod pengesahan kebenaran mudah:
isUserLoggedIn()
menentukan sama ada nama pengguna disimpan dalam SESI dan digunakan untuk mengesahkan sama ada pengguna log masuk. Fungsi hasPermission($permission)
menanyakan jadual kebenaran pengguna berdasarkan nama pengguna untuk menentukan sama ada pengguna mempunyai kebenaran tertentu. 🎜🎜Ringkasan: 🎜Log masuk tunggal adalah untuk memberikan pengguna log masuk yang mudah dan kaedah pengesahan kebenaran. Menggunakan fungsi PHP untuk melaksanakan log masuk tunggal dan pengesahan kebenaran boleh mengelakkan operasi berulang dan meningkatkan kecekapan pembangunan. Artikel ini menyediakan contoh kod untuk log masuk dan log keluar pengguna serta memperkenalkan cara menggunakan fungsi SESI, Kuki dan PHP untuk melaksanakan log masuk tunggal dan pengesahan kebenaran. Pembangun boleh mengubah suai dan mengembangkan mengikut keperluan sebenar untuk mencapai sistem pengurusan pengguna yang lebih berkuasa. 🎜Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi PHP untuk melaksanakan log masuk tunggal dan pengesahan kebenaran untuk log masuk dan log keluar pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!