更新simple代码

This commit is contained in:
云泽网 2025-05-27 01:33:18 +08:00
parent 770b8c9092
commit b63b80318b

View File

@ -8,25 +8,21 @@ if (session('user_id')) {
} }
// 如果session未登录检查cookie // 如果session未登录检查cookie
else { else {
$userId = cookie('user_id');
$expireTime = cookie('expire_time');
$isAutoLogin = cookie('is_auto_login');
$userAccount = cookie('user_account'); $userAccount = cookie('user_account');
$userPassword = cookie('user_password'); if ($userAccount) {
// 如果cookie中有有效的登录信息
if ($userId && $expireTime && $isAutoLogin && $userAccount && $userPassword) {
// 验证时间戳
$currentTime = time() * 1000; // 转换为毫秒
if ($currentTime < intval($expireTime)) {
// 恢复session // 恢复session
session('user_id', $userId); session('user_id', cookie('user_id'));
session('user_name', cookie('user_name')); session('user_name', cookie('user_name'));
session('user_avatar', cookie('user_avatar')); session('user_avatar', cookie('user_avatar'));
$isLoggedIn = true; $isLoggedIn = true;
} }
} }
}
// 添加一个隐藏的div来存储登录状态
$loginStatus = [
'isLoggedIn' => $isLoggedIn,
'userAccount' => $userAccount ?? ''
];
$userInfo = [ $userInfo = [
'is_login' => $isLoggedIn, 'is_login' => $isLoggedIn,
@ -36,8 +32,9 @@ $userInfo = [
?> ?>
<!-- 添加一个隐藏的div来存储登录状态 --> <!-- 添加一个隐藏的div来存储登录状态 -->
<div id="loginStatus" style="display: none;" data-is-logged-in="{$isLoggedIn}" data-expire-time="{$expireTime ?? ''}" <div id="loginStatus" style="display: none;"
data-is-auto-login="{$isAutoLogin ?? ''}"> data-is-logged-in="{$isLoggedIn}"
data-user-account="{$userAccount ?? ''}">
</div> </div>
<div style="display: flex;flex-direction: column;"> <div style="display: flex;flex-direction: column;">
@ -367,6 +364,36 @@ $userInfo = [
</style> </style>
<script> <script>
// 在页面加载时立即执行
(function() {
// 检查是否已经刷新过
if (sessionStorage.getItem('has_refreshed') === 'true') {
return;
}
// 检查localStorage中是否有用户账号
var userAccount = localStorage.getItem('user_account');
if (userAccount) {
// 同步到cookie
document.cookie = "user_account=" + userAccount + "; path=/";
// 如果有其他必要的数据也同步到cookie
var userId = localStorage.getItem('user_id');
var userName = localStorage.getItem('user_name');
var userAvatar = localStorage.getItem('user_avatar');
if (userId) document.cookie = "user_id=" + userId + "; path=/";
if (userName) document.cookie = "user_name=" + userName + "; path=/";
if (userAvatar) document.cookie = "user_avatar=" + userAvatar + "; path=/";
// 刷新页面以应用新的cookie并标记已刷新
if (!document.cookie.includes('user_id')) {
sessionStorage.setItem('has_refreshed', 'true');
window.location.reload();
}
}
})();
layui.use(['carousel', 'form', 'layer'], function () { layui.use(['carousel', 'form', 'layer'], function () {
var carousel = layui.carousel, form = layui.form, layer = layui.layer, $ = layui.$; var carousel = layui.carousel, form = layui.form, layer = layui.layer, $ = layui.$;
@ -382,35 +409,40 @@ $userInfo = [
return; return;
} }
var expireTime = localStorage.getItem('expire_time'); // 从localStorage获取用户账号
var isAutoLogin = localStorage.getItem('is_auto_login'); var userAccount = localStorage.getItem('user_account');
if (userAccount) {
if (expireTime && new Date().getTime() < expireTime && isAutoLogin === 'true') {
// 标记已尝试自动登录 // 标记已尝试自动登录
sessionStorage.setItem('auto_login_attempted', 'true'); sessionStorage.setItem('auto_login_attempted', 'true');
var account = localStorage.getItem('user_account');
var password = atob(localStorage.getItem('user_password'));
// 发送自动登录请求 // 发送自动登录请求
$.ajax({ $.ajax({
url: '/index/user/login', url: '/index/user/login',
type: 'POST', type: 'POST',
data: { data: {
account: account, account: userAccount,
password: password password: atob(localStorage.getItem('user_password'))
}, },
dataType: 'json', dataType: 'json',
success: function (res) { success: function (res) {
if (res.code === 0) { if (res.code === 0) {
// 登录成功,刷新页面 // 设置cookie
window.location.reload(); document.cookie = "user_id=" + res.data.id + "; path=/";
document.cookie = "user_name=" + res.data.name + "; path=/";
document.cookie = "user_avatar=" + res.data.avatar + "; path=/";
document.cookie = "user_account=" + userAccount + "; path=/";
// 同时更新localStorage
localStorage.setItem('user_id', res.data.id);
localStorage.setItem('user_name', res.data.name);
localStorage.setItem('user_avatar', res.data.avatar);
// 登录成功,强制刷新页面
window.location.href = window.location.href + '?t=' + new Date().getTime();
} else { } else {
// 登录失败,清除所有相关存储 // 登录失败,清除所有相关存储
localStorage.removeItem('user_account'); localStorage.removeItem('user_account');
localStorage.removeItem('user_password'); localStorage.removeItem('user_password');
localStorage.removeItem('expire_time');
localStorage.removeItem('is_auto_login');
sessionStorage.removeItem('auto_login_attempted'); sessionStorage.removeItem('auto_login_attempted');
} }
} }
@ -503,21 +535,23 @@ $userInfo = [
// 清除localStorage // 清除localStorage
localStorage.removeItem('user_account'); localStorage.removeItem('user_account');
localStorage.removeItem('user_password'); localStorage.removeItem('user_password');
localStorage.removeItem('expire_time'); localStorage.removeItem('user_id');
localStorage.removeItem('is_auto_login'); localStorage.removeItem('user_name');
localStorage.removeItem('user_avatar');
// 清除sessionStorage // 清除sessionStorage
sessionStorage.removeItem('auto_login_attempted'); sessionStorage.removeItem('auto_login_attempted');
sessionStorage.removeItem('has_refreshed');
// 清除cookie // 清除cookie
document.cookie = "user_id=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "user_id=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
document.cookie = "user_name=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "user_name=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
document.cookie = "user_avatar=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "user_avatar=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
document.cookie = "expire_time=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "user_account=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
document.cookie = "is_auto_login=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "user_password=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
// 刷新页面 // 强制刷新页面,不使用缓存
window.location.reload(); window.location.href = window.location.href + '?t=' + new Date().getTime();
} }
} }
}); });
@ -581,13 +615,19 @@ $userInfo = [
document.cookie = "user_avatar=" + res.data.avatar + "; path=/"; document.cookie = "user_avatar=" + res.data.avatar + "; path=/";
document.cookie = "expire_time=" + expireTime + "; path=/"; document.cookie = "expire_time=" + expireTime + "; path=/";
document.cookie = "is_auto_login=true; path=/"; document.cookie = "is_auto_login=true; path=/";
document.cookie = "user_account=" + data.field.account + "; path=/";
document.cookie = "user_password=" + btoa(data.field.password) + "; path=/";
// 设置sessionStorage
sessionStorage.setItem('auto_login_attempted', 'true');
layer.msg('登录成功', { layer.msg('登录成功', {
icon: 1, icon: 1,
time: 2000, time: 2000,
shade: 0.3 shade: 0.3
}, function () { }, function () {
window.location.reload(); // 强制刷新页面,不使用缓存
window.location.href = window.location.href + '?t=' + new Date().getTime();
}); });
} else { } else {
layer.msg(res.msg, { layer.msg(res.msg, {