我想知道在我的应用程序中主要是 php,这是保持用户登录到站点直到他们注销的最佳方法。可以是令牌、会话寿命、cookie 等吗?
目前这是我的登录和注销系统的工作方式:
当用户登录时,它会将他们的详细信息存储在 $_SESSION 中:
if (isset($_SESSION['teacherid'])) {
$userid = $_SESSION['teacherid'];
}
if (isset($_SESSION['teacherusername'])) {
$username = $_SESSION['teacherusername'];
}
然后在每个脚本中,它包含下面的代码,其中 sessionlife 持续 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";
}
显然,如果用户单击注销页面,那么它会导航到上面的脚本。
但这是一个好方法吗?有没有更方便的方法,因为如果您查看适当的 Web 应用程序,它们可以让用户保持登录数天,但他们是如何做到的呢?
谢谢