auth-nav.js 758 Bytes
import auth from '@/common/auth.js'

let redirectingToLogin = false

/**
 * 统一跳转登录页,避免多个接口同时 600 时连续 reLaunch 导致页面闪烁。
 */
export function redirectToLogin() {
	if (redirectingToLogin) return

	const pages = getCurrentPages()
	const current = pages.length ? pages[pages.length - 1] : null
	const route = current && (current.route || (current.$page && current.$page.fullPath))
	if (route && String(route).indexOf('pages/login/login') !== -1) {
		auth.clearLoginState()
		return
	}

	redirectingToLogin = true
	auth.clearLoginState()
	uni.reLaunch({
		url: '/pages/login/login',
		complete: () => {
			setTimeout(() => {
				redirectingToLogin = false
			}, 800)
		}
	})
}

export default {
	redirectToLogin
}