mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			825 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			825 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { getAccessToken } from '@/utils/auth'
 | |
| 
 | |
| // 登录页面
 | |
| const loginPage = "/pages/login"
 | |
| 
 | |
| // 页面白名单
 | |
| const whiteList = [
 | |
|   '/pages/login', '/pages/common/webview/index'
 | |
| ]
 | |
| 
 | |
| // 检查地址白名单
 | |
| function 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 (getAccessToken()) {
 | |
|         if (to.path === loginPage) {
 | |
|           uni.reLaunch({ url: "/" })
 | |
|         }
 | |
|         return true
 | |
|       } else {
 | |
|         if (checkWhite(to.url)) {
 | |
|           return true
 | |
|         }
 | |
|         uni.reLaunch({ url: loginPage })
 | |
|         return false
 | |
|       }
 | |
|     },
 | |
|     fail(err) {
 | |
|       console.log(err)
 | |
|     }
 | |
|   })
 | |
| })
 | 
