49 lines
		
	
	
		
			846 B
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			49 lines
		
	
	
		
			846 B
		
	
	
	
		
			JavaScript
		
	
import {
 | 
						|
	getToken
 | 
						|
} from '@/utils/auth'
 | 
						|
 | 
						|
// 登录页面
 | 
						|
const loginPage = "/pages/login"
 | 
						|
 | 
						|
// 页面白名单
 | 
						|
const whiteList = [
 | 
						|
	'/pages/login',
 | 
						|
	'/pages/register',
 | 
						|
	'/pages/changeBaseUrl',
 | 
						|
	'/pages/common/webview/index'
 | 
						|
]
 | 
						|
 | 
						|
// 检查地址白名单
 | 
						|
function checkWhite(url) {
 | 
						|
	console.log("checkWhite",url)
 | 
						|
	const path = url.split('?')[0]
 | 
						|
	return whiteList.indexOf(path) !== -1
 | 
						|
}
 | 
						|
 | 
						|
// 页面跳转验证拦截器
 | 
						|
let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]
 | 
						|
list.forEach(item => {
 | 
						|
	uni.addInterceptor(item, {
 | 
						|
		invoke(to) {
 | 
						|
			if (getToken()) {
 | 
						|
				if (to.url === loginPage) {
 | 
						|
					uni.reLaunch({
 | 
						|
						url: "/"
 | 
						|
					})
 | 
						|
				}
 | 
						|
				return true
 | 
						|
			} else {
 | 
						|
				if (checkWhite(to.url)) {
 | 
						|
					return true
 | 
						|
				}
 | 
						|
				uni.reLaunch({
 | 
						|
					url: loginPage
 | 
						|
				})
 | 
						|
				return false
 | 
						|
			}
 | 
						|
		},
 | 
						|
		fail(err) {
 | 
						|
			console.log(err)
 | 
						|
		}
 | 
						|
	})
 | 
						|
}) |