uniapp中的登录鉴权实现

1,350 阅读1分钟

理清逻辑

登录限制的逻辑,简单划分一下就是下面几点:

  1. 登录成功时set一个token,没登录的话没有token
  2. 访问除了tabbar的页面和登录页以外的页面时都要鉴权
  3. 鉴权成功继续访问,失败则跳到login

理清楚后,得出需要get和set两个方法。然后开始封装此函数

第一步

在根目录下新建common文件夹,在其里面新建一个auth.js文件,编写set和getToken方法

const TokenKey = 'uni_token';
// 认证令牌
export function getToken() {
    return uni.getStorageSync(TokenKey)
}
export function setToken(token) {
    return uni.setStorageSync(TokenKey, token)
} 
export function removeToken() {
    return uni.removeStorageSync(TokenKey)
}

第二步

在login的登录逻辑中引入auth文件的setToken方法,用它进行存取token的行为。

import {setToken} from '../../common/auth.js';
//此处省略
if(//登录成功的逻辑){
    setToken('logined')
}

第三步

在需要登录鉴权才能跳转的页面中,引入auth中的getToken方法(是get不是set)进行鉴权。

要把鉴权逻辑写在onLoad钩子中,因为此时页面还渲染出来。

import {getToken} from '../../common/auth.js';
onLoad(){
    let token = getToken()
    if (!token) {
        uni.reLaunch({
            url: "/pages/login/login"
        })
    }
}

完成!