39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
export default defineNuxtRouteMiddleware((to, from) => {
|
|
console.log('admin-auth 中间件执行:', to.path)
|
|
|
|
// 只在客户端执行
|
|
if (process.server) {
|
|
console.log('服务器端跳过中间件检查')
|
|
return
|
|
}
|
|
|
|
// 检查认证状态
|
|
const isAuthenticated = localStorage.getItem('isAuthenticated')
|
|
const adminUser = localStorage.getItem('adminUser')
|
|
|
|
console.log('认证状态:', isAuthenticated)
|
|
console.log('管理员用户:', adminUser)
|
|
|
|
if (!isAuthenticated || isAuthenticated !== 'true') {
|
|
console.log('未认证,重定向到登录页')
|
|
return navigateTo('/login')
|
|
}
|
|
|
|
if (adminUser) {
|
|
try {
|
|
const user = JSON.parse(adminUser)
|
|
if (user.role !== 'admin') {
|
|
console.log('非管理员用户,重定向到登录页')
|
|
return navigateTo('/login')
|
|
}
|
|
} catch (error) {
|
|
console.error('解析用户信息失败:', error)
|
|
return navigateTo('/login')
|
|
}
|
|
} else {
|
|
console.log('缺少用户信息,重定向到登录页')
|
|
return navigateTo('/login')
|
|
}
|
|
|
|
console.log('管理员认证通过')
|
|
})
|