修改bug
This commit is contained in:
55
property-uniapp-project/common/checkLogin.js
Normal file
55
property-uniapp-project/common/checkLogin.js
Normal file
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* 登录检查工具 — 统一拦截未登录用户的功能操作
|
||||
*
|
||||
* 使用方式:
|
||||
* import { requireLogin } from '@/common/checkLogin.js'
|
||||
* if (!requireLogin()) return
|
||||
*
|
||||
* 页面级调用即可,全局 navigateTo 拦截器(App.vue onLaunch 中注册)作为兜底。
|
||||
*/
|
||||
|
||||
/** 无需登录即可访问的页面路径白名单(全局拦截器使用) */
|
||||
export const PUBLIC_PATHS = [
|
||||
'/pageSubPack/loginSub/login',
|
||||
'/pageSubPack/loginSub/register-new-user',
|
||||
'/pageSubPack/loginSub/forget-pwd',
|
||||
'/pageSubPack/loginSub/change-pwd',
|
||||
'/pageSubPack/loginSub/privacy',
|
||||
'/pages/navigation/navigation'
|
||||
]
|
||||
|
||||
/**
|
||||
* 判断指定路径是否为公开页面(无需登录)
|
||||
* @param {string} url - navigateTo 的目标 url
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function isPublicPath(url) {
|
||||
if (!url) return true
|
||||
// 去掉查询参数
|
||||
const path = url.split('?')[0]
|
||||
return PUBLIC_PATHS.some(p => path === p || path.startsWith(p + '?'))
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否已登录;未登录则弹出提示并跳转登录页
|
||||
* @param {object} [options]
|
||||
* @param {string} [options.message='请先登录'] - 提示文案
|
||||
* @param {boolean} [options.redirect=true] - 是否自动跳转登录页
|
||||
* @returns {boolean} 已登录返回 true,否则返回 false
|
||||
*/
|
||||
export function requireLogin(options = {}) {
|
||||
const {
|
||||
message = '请先登录',
|
||||
redirect = true
|
||||
} = options
|
||||
const token = uni.getStorageSync('token')
|
||||
if (token) return true
|
||||
|
||||
uni.showToast({ title: message, icon: 'none' })
|
||||
if (redirect) {
|
||||
setTimeout(() => {
|
||||
uni.navigateTo({ url: '/pageSubPack/loginSub/login?mode=pwd' })
|
||||
}, 1000)
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user