更新simple代码
This commit is contained in:
parent
770b8c9092
commit
b63b80318b
@ -8,26 +8,22 @@ 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) {
|
||||||
|
// 恢复session
|
||||||
// 如果cookie中有有效的登录信息
|
session('user_id', cookie('user_id'));
|
||||||
if ($userId && $expireTime && $isAutoLogin && $userAccount && $userPassword) {
|
session('user_name', cookie('user_name'));
|
||||||
// 验证时间戳
|
session('user_avatar', cookie('user_avatar'));
|
||||||
$currentTime = time() * 1000; // 转换为毫秒
|
$isLoggedIn = true;
|
||||||
if ($currentTime < intval($expireTime)) {
|
|
||||||
// 恢复session
|
|
||||||
session('user_id', $userId);
|
|
||||||
session('user_name', cookie('user_name'));
|
|
||||||
session('user_avatar', cookie('user_avatar'));
|
|
||||||
$isLoggedIn = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 添加一个隐藏的div来存储登录状态
|
||||||
|
$loginStatus = [
|
||||||
|
'isLoggedIn' => $isLoggedIn,
|
||||||
|
'userAccount' => $userAccount ?? ''
|
||||||
|
];
|
||||||
|
|
||||||
$userInfo = [
|
$userInfo = [
|
||||||
'is_login' => $isLoggedIn,
|
'is_login' => $isLoggedIn,
|
||||||
'name' => session('user_name'),
|
'name' => session('user_name'),
|
||||||
@ -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, {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user