当前位置: 首页 > news >正文

main.js中封装全局登录函数

1. 在 main.js 中封装全局登录函数

通过 vue 对象的原型扩展,可以扩展一个函数,这样这个函数就可以在
每一个界面通过类似指向对象的方式,去访问这个函数。

如下是 main.js 扩展的函数:

Vue.prototype.checkLogin = function(backpage, backtype){
    var SUID  = uni.getStorageSync('SUID');
    var SRAND = uni.getStorageSync('SRAND');
    var SNAME = uni.getStorageSync('SNAME');
    var SFACE = uni.getStorageSync('SFACE');
    if(SUID == '' || SRAND == '' || SFACE == ''){
        uni.redirectTo({url:'../login/login?backpage='+backpage+'&backtype='+backtype});
        return false;
    }
    return [SUID, SRAND, SNAME, SFACE];
}

uni.getStorageSync 采用同步的方式获取本地存储的四个变量。
分别是:

  • SUID:用户id
  • SRAND:用户随机码
  • SNAME:用户名称
  • SFACE:用户头像

如果四个变量为空值得话,就认为用户没有登录,则使用 uni.redirectTo 重定向的方式跳转到登录页,补充:uni.redirectTo 为 uni-app 中的两种跳转方式之一。

登录失败后返回 false,如果是已经登录了,则把需要获取的值返回回去;

参数说明

backpage, backtype 2个参数分别代表:

  • backpage : 登录后返回的页面
  • backtype : 打开页面的类型[1:redirectTo、2:switchTab]
返回值说明

已经登录返回数组 [用户 id, 用户随机码, 用户昵称, 用户表情]

2. 创建 login 页面

login 页面作为登录过度页面,多端登录都通过此页面完成!

<template>
    <view>
        {{backpage}}
        ---
        {{backtype}}
    </view>
</template>

<script>
    export default {
        data() {
            return {
                backpage:'',
                backtype:''
            };
        },
        onLoad:function(e){
            this.backpage = e.backpage;
            this.backtype = e.backtype;
        }

    }
</script>

<style>

</style>

3. 在页面中应用登录检查函数

我们通过界面触发校验登陆的函数,如 write.vue 界面。

点击上图中的 写作 将会触发验登陆的函数 checkLogin ,在这同时传递了两个参数,具体代码如下:

<script>
    export default {
    data() {
        return {

        };
    },
    onLoad : function() {
        var loginRes = this.checkLogin('../my/my''2');
        if(!loginRes){return false;}
    }
}
</script>

return 或终止函数运行哦!

执行结果如下:

很显然,跳转至 login.vue 登陆界面了。

 

转载于:https://www.cnblogs.com/niceyoo/p/10624642.html

相关文章:

  • Greenplum 5.16.0初探
  • Gym - 100920E 2010-2011 OpenCup IX Onsite, II Yandex Summer School E.Paint 状压DP
  • 第三章:回收方法区
  • Kubernetes Ingress 日志分析与监控的最佳实践
  • MAYA安装未完成,某些产品无法安装的解决方法
  • DB
  • Java的新项目学成在线笔记-day7(三)
  • MySQL优化技巧
  • maven maven上传jar到nexus本地仓库
  • 软件测试自动化的最新趋势
  • 游戏策划必看,玩家的五大需求
  • NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
  • django登录与注销学习笔记
  • 普刊发表要求
  • 如何阅读jdk源码?
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • JavaScript HTML DOM
  • Java比较器对数组,集合排序
  • Java读取Properties文件的六种方法
  • node.js
  • 前端学习笔记之观察者模式
  • 什么软件可以剪辑音乐?
  • 使用 Docker 部署 Spring Boot项目
  • 使用API自动生成工具优化前端工作流
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 微信开放平台全网发布【失败】的几点排查方法
  • k8s使用glusterfs实现动态持久化存储
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​如何在iOS手机上查看应用日志
  • # Apache SeaTunnel 究竟是什么?
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #AngularJS#$sce.trustAsResourceUrl
  • #define,static,const,三种常量的区别
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $.ajax()方法详解
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (办公)springboot配置aop处理请求.
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二十三)Flask之高频面试点
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (算法二)滑动窗口
  • (转载)hibernate缓存
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • /etc/sudoer文件配置简析
  • @ModelAttribute注解使用
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [20171102]视图v$session中process字段含义
  • [Android] Android ActivityManager
  • [C#] 我的log4net使用手册
  • [CSS]盒子模型
  • [Django 0-1] Core.Handlers 模块
  • [FxCop.设计规则]8. 也许参数类型应该是基类型
  • [HackMyVM]靶场 Wild