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>