php实现web系统单点登录
随着用户不断扩大的需求,更多的系统被建造起来。为了获得更好的用户体验,需要实现用户单点登录。所谓单点登录,就是用户在一个系统上登录后,其他系统就不需要重复登录。单点的登录的好处很明显,提高了用户体验度。如何实现单点登录,在这里我提供两种解决方案:
1.一级域名相同,通过共享cookie来实现
有a.the.com和b.the.com A B两个站点, 只要在A,B任何一个站点登录后,两个网站就都可以使用,不需要在另一个站点登录了。而通过基于cookie的实现方式,前提是两个系统共享一级域名,并且用户要可以唯一标示。上面这两个站点的一级域名是the.com,我们只需要将Cookie的domain属性设置为the.com;具体处理过程如下:当用户在其中某一个站点登录,就设置一个cookie信息,该cookie包含标识用户ID,为了安全,还需要利用对该cookie的值加密。当用户访问其他网站的时候,首先判断是否存在cookie,如果有的话,便解密该cookie,获取用户信息,设置用户为登录状态。
下面是PHP示例代码
function login() //正常的登录
{
.......//验证用户的合法性
$_SESSION['uid'] = $user_id;
setcookie('sign', encrypt($pass9), '', '/', 'the.com');
}
funtion sign()
{
$sign = $_COOKIE['sign'];
if(!empty($sign))
{
$sign = decrypt($sign);
..........///登录成功
}
}
这里需要注意的是:加解密一定需要做安全验证。但是这个方法也不够完美,两个站点必须有相同一级域名;另外这种完全基于cookie的方式,安全性不够高。
2.采用专门登录系统。
所有的站点共享一个登录系统;当用户在其中的一个站点登录成功时, 该系统调用其他站点的登录接口,完成用户在其他站点的登录,同时设置相应的登录信息;或者在用户登录时,只在该系统保存用户登录信息,当用户在其他站点登录时,必须请求该系统接口,获取用户是否登录的信息。前一种方式的缺点是:不管用户有没有使用其他站点,那些站点都需要保存用户状态;后一种方式就把所有的压力都转移到登录系统上面来。而如果要实现用户退出的统一操作,就需要站点调用登录系统的退出接口,然后登录系统接口调用其他站点的退出接口;或者设置一个标记,如果这个标记不存在则标示用户退出,此时只要把该标示清空即可,其他站点发现该标示不存在就知道用户已经退出系统。
这种处理方式需要在登录系统和个站点之间规定登录接口,和注销接口。通过这些接口,个站点可以很方便的处理用户登录或退出:
function login()
{
$info = callLoginServer(); //访问登录服务器
if(!empty($info)) //登录成功了
}
//用户没有登录,则在本系统中登录并调用登录服务器接口
function loging() //本系统登录
{
.....//登录成功
callSeverLogin();//通知用户登录
}
上面只是简单的逻辑结构,对于正式的系统需要做具体的处理。
如果大家还有更好的方法,欢迎一起讨论!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Dreamweaver Mac版
Alat pembangunan web visual

Dreamweaver CS6
Alat pembangunan web visual