背景
这次项目有一个需求是实现点击一些按钮路由跳转前验证用户是否登陆,以及一些不跳转路由的功能,按钮点击后出现模态框前验证用户是否登陆。
方案选择
路由守卫
首先我并没有选择路由守卫,因为我的需求有不进行路由跳转进行验证的地方。
但是路由守卫用来做跳转前验证肯定是个不错的选择。我贴一个博客大家可以参考其他人的路由守卫方案
https://cnblogs.com/XHappyness/p/13808413.html
自定义验证方法
我是自己写的贴合需求的验证授权方法。
1.考虑跳转路由可以使用
2.在某些不跳转路由的需要验权的可以使用
实现步骤
在 utils 下编写 judgeLogin.js
export function judgeLogin() {
return new Promise((resolve, reject) => {
// 还未登陆
if (!uni.getStorageSync('user')) {
// #ifdef H5
// 重定向到H5登录页
uni.redirectTo({
url: '/pages/login/index'
})
reject()
// #endif
// 微信小程序未登录
// #ifdef MP-WEIXIN
// 登陆用的临时code
let wxCode = null
let loginInfo = uni.getStorageSync('wxUserLogin') || {
}
uni.login({
provider: 'weixin',
// 获取临时code
success: function(wx){
console.</