GraceRequest 封装了用户登录检查功能,原理如下 :
01. 用户登录会在本地数据记录用户的相关数据:
key : uToken,可以在 config.js 内配置名称
value : 用户数据表内生成的 token-用户 id
说明 : 之所以记录用户主键是为了更快的用户数据读取速度,如果不想暴露把token做成索引即可;
02. 提供检查函数 checkLogin 检查用户是否已经登录;
03. 提供未登录跳转函数 gotoLogin 来完成页面跳转;
04. 提供 token 写入函数 writeLoginToken 来记录用户数据到本地;
uid int 用户id username varchar 用户名 password varchar 密码 token varchar 用户token 随机码 ( 如 PHP 使用 uniqid() 生成后记录 ) openid varchar 第三方登录 id 信息 ......
功能 : 检查用户是否登录 参数 : notLoginDo 当用户没有登录时,执行的回调函数 [ 可选 ] 返回 : true / false
示例
<script>
export default {
data() {
return {}
},
onLoad:function(){
// 检查登录
var isLogin = uni.gRequest.checkLogin(()=>{
// 如果用户没有登录跳转到登录页面
uni.gRequest.gotoLogin();
});
console.log(isLogin);
},
methods:{}
}
</script>功能 : 跳转到登录页面 参数 : 1 path 登录页面路径,默认 "../login/login" 2 opentype 页面打开类型,默认 redirect, 其他 : navigate, switchTab
功能 : 记录用户登录令牌 参数 : 1 token 用户登录令牌 2 uid 用户 id 说明 : 此函数位于 graceRequestConfig.js 记录 用户 token 到本地,格式为 : loginToken-uid 您可以根据项目需要继续改进
示例
<script>
import GraceRequestConfig from '@/custom/graceRequestConfig.js';
export default {
data() {
return {}
},
onLoad:function(){
// 如登录成功后记录用户数据到本地
GraceRequestConfig.writeLoginToken('HOOMIU0NGXC', 10000);
},
methods:{}
}
</script>当您经过接口验证 > 记录用户登录数据到本地 后,您就可以在请求时带上 用户令牌数据,这样可以方便地把用户令牌传递给后端 api 接口进行用户识别、校验等工作。
您只需要将 get、post、upload 函数的最后一个参数设置为 true,即可实现在请求时带上用户令牌 :
<script>
import GraceRequestConfig from '@/custom/graceRequestConfig.js';
export default {
data() {
return {}
},
onLoad:function(){
// 如登录成功后记录用户数据到本地
GraceRequestConfig.writeLoginToken('HOOMIU0NGXC', 10000);
//
this.requestDemo();
},
methods:{
requestDemo : async function(){
// 请求前置函数
uni.gRequest.befor = ()=>{
uni.showLoading({title:'加载中 ...'});
}
// 请求后置函数
uni.gRequest.after = ()=>{
uni.hideLoading();
};
// GET 请求
try{
// 最后一个参数 true
let res = await uni.gRequest.get('srequest/userTokenDemo', {}, true);
console.log(res);
this.content = res;
}catch(e){
// 请求失败
console.log(e);
}
}
}
}
</script>