Php 保持用户登录的最佳方法?
我想知道在我的应用程序中,主要是php,这是保持用户登录站点直到他们注销的最佳方法。可能是代币、会话生活、饼干等吗 目前,我的登录和注销系统是这样工作的: 当用户登录时,它会将其详细信息存储在$\u会话中:Php 保持用户登录的最佳方法?,php,cookies,Php,Cookies,我想知道在我的应用程序中,主要是php,这是保持用户登录站点直到他们注销的最佳方法。可能是代币、会话生活、饼干等吗 目前,我的登录和注销系统是这样工作的: 当用户登录时,它会将其详细信息存储在$\u会话中: if (isset($_SESSION['teacherid'])) { $userid = $_SESSION['teacherid']; } if (isset($_SESSION['teacherusername'])) { $username =
if (isset($_SESSION['teacherid'])) {
$userid = $_SESSION['teacherid'];
}
if (isset($_SESSION['teacherusername'])) {
$username = $_SESSION['teacherusername'];
}
然后,在每个脚本中,它都包含以下代码,其中会话寿命持续12小时:
<?php
ini_set('session.gc_maxlifetime',12*60*60);
ini_set('session.gc_divisor', '1');
ini_set('session.gc_probability', '1');
ini_set('session.cookie_lifetime', '0');
require_once 'init.php';
session_start();
?>
init.php如下所示:
<?php
session_save_path('Session');
?>
现在,在用户下次刷新页面12小时后,由于会话将被破坏,它将进入注销页面:
if ((isset($username)) && (isset($userid))){
session_destroy();
echo "You have been Logged Out | <a href='./home.php'>Home</a>";
}
else {
echo "You are Not Logged In";
}
if((isset($username))&&(isset($userid))){
会话_destroy();
echo“您已注销”;
}
否则{
回显“您未登录”;
}
显然,如果用户单击注销页面,它就会导航到上面的脚本
但这是一种好的方式吗?有没有一种更方便的方法,因为如果您查看适当的web应用程序,它们可以让用户登录数天,但他们是如何做到这一点的
谢谢会话将在紧要关头完成,而且它们足够安全(尽管不要引用我的话),但根据服务器使用情况和配置,您的会话可能会在12小时标记之前被清除 登录后,我启动会话,并将cookie保存到他们的计算机。此cookie包含唯一生成的字符串及其帐户id 刷新页面时,将运行以下命令(伪代码):
当然,使用Cookie对于这个功能来说是必不可少的-你的Cookie可以存活一个月或更长时间,直到被删除+1而且对xss攻击也很有用(针对黑客)
if (session_exists) continue();
else if (!session_exists AND cookie_exists AND validate_cookie()) {
login_user_via_cookie();
continue();
else show_login_page();