|
@@ -5,7 +5,20 @@
|
|
|
* 未登录触发 requireLogin() 时:toast 提示 + 跳回首页 tab + 触发登录浮层(showLoginSheet)。
|
|
* 未登录触发 requireLogin() 时:toast 提示 + 跳回首页 tab + 触发登录浮层(showLoginSheet)。
|
|
|
*/
|
|
*/
|
|
|
export function requireLogin() {
|
|
export function requireLogin() {
|
|
|
- if (getApp() && getApp().$store && getApp().$store.getters.isLoggedIn) return true
|
|
|
|
|
|
|
+ var loggedIn = false
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (getApp() && getApp().$store && getApp().$store.getters && getApp().$store.getters.isLoggedIn) {
|
|
|
|
|
+ loggedIn = true
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.error('[guard] store 判定异常,改用 storage', e)
|
|
|
|
|
+ }
|
|
|
|
|
+ // 兜底:mp-weixin 下 getApp().$store 可能不可达,此时直读 storage token。
|
|
|
|
|
+ // storage token 是登录态唯一可信载体(setToken 总是同步写入,401 清理时同步移除)
|
|
|
|
|
+ if (!loggedIn && uni.getStorageSync('token')) {
|
|
|
|
|
+ loggedIn = true
|
|
|
|
|
+ }
|
|
|
|
|
+ if (loggedIn) return true
|
|
|
uni.showToast({ title: '请先登录', icon: 'none' })
|
|
uni.showToast({ title: '请先登录', icon: 'none' })
|
|
|
setTimeout(function() {
|
|
setTimeout(function() {
|
|
|
uni.switchTab({ url: '/pages/index/index' })
|
|
uni.switchTab({ url: '/pages/index/index' })
|