Vue实现web网页锁屏功能

vue实现WEB网页锁屏功能 ![在这里插入图片描述](https://img-blog.csdnimg.cn/725295ef7d034188b606350795a54639.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmFueXZpcA==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center


在这里插入图片描述

页面锁屏功能听起来很高大,其实没Y用,摸鱼混时间倒是挺不错的。。。
创建一个 lockScreen.vue 页面 设置 router 一级路由
项目有角色权限的注意了 路由不要设置错了
当用户进入 lockScreen.vue 页面 把锁屏密码存起来
存在VueX 里面 因为也main刷新 Vuex 数据也会丢失 我们要在window.sessionStorage.setitem(“Secret”,password) 或者 window.localStorage.setitem(“Secret”,password) 也存一份
用户安全的的话 我们还是加密一下比较好 md5 加密就行 毕竟存在前端 已经无所谓了

安装MD5

npm install --save js-md5

在main.js 引入
import md5 from 'js-md5'; 
Vue.prototype.$md5 = md5

yarn 安装
yarn add md5 -s

在main.js 当中 this$md5("hello word")   //这样就可以加密了,还是很方便的

路由权限 配置

router.beforeEach((to, from, next) => {  // 路由守卫 拦截 
    var Secret= sessionStorage.getItem('Secret') 获取当用户密码
 // 判断当前页面是否是 LockScreen 是直接进去
    if (to.matched[0] && (to.matched[0].path == "/Login" || to.matched[0].path ==  "/LockScreen")) { // 是否登录也买你 防止死循环
        next()
    } else {
        if (window.sessionStorage.getItem("Secret")) {  // 判断用户已经锁屏 有密码 肯定是已经锁屏了
            next('/LockScreen')     // 只要有密码 无论进入什么页面都跳转  “/LockScreen” 浏览器返回建也不行
        } else {

           //  这里就是一些正常角色权限判断,代码就不放了,怕乱 
        }
    }
})

到这一步 无论 用户进入什么 页面都会跳转到 “/LockScreen” 页面 刷新 返回 都回不去了 现在页面锁屏功能就已经好了
是不是很简单

页面锁屏好了 是不是还要有页面解锁功能啊。。。
直接校验 加密过后的铭文

 if (this.$md5(password) == window.sessionStorage.getItem("Secret")) {
                    window.sessionStorage.removeItem("Secret")
                     this.$router.push("/")
                    window.sessionStorage.removeItem("lockScreenPath")
                } else {
                    this.$message.error('锁屏密码错误!');
                }

但是这样好像有点问题,就是我每次接触锁屏的时候返回的都有首页,虽然功能是完成了,但是用户体验并不是很好

我从什么页面 ==> “/LockScreen” 锁屏页面 ==> 我原来的页面
我们要把 我从什么页面存起来
还是 router.beforeEach

beforeRouteEnter(to, from, next) {
            next(vm => {
                // 这里需要判断一下 是否为首页  因为页面刷新  from.path  默认为 / 
如果不判断就会覆盖我们原来的路由
                if (from.path != "/") {
                    window.sessionStorage.setItem("lockScreenPath", from.path)
                }
            })
        },

页面解锁代码

if (this.$md5(ispassword) == window.sessionStorage.getItem("Secret")) {
                    window.sessionStorage.removeItem("Secret")
                    if (window.sessionStorage.getItem("lockScreenPath")) {
                        this.$router.push(window.sessionStorage.getItem("lockScreenPath"))
                    } else {
                        this.$router.push("/")
                    }
                    window.sessionStorage.removeItem("lockScreenPath")
                } else {
                     this.$message.error('提示,密码错误');  
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue.js 是一种用于构建用户界面的 JavaScript 框架,它提供了一种基于组件的开发模式,可用于构建单页面应用程序。在 Vue.js 中实现 Web 端的定位功能获取经纬度可以通过使用 HTML5 的 Geolocation API 来实现。 Geolocation API 是一种 HTML5 标准,允许 Web 应用程序使用 JavaScript 与浏览器通信并访问用户的地理位置信息。在 Vue.js 中,您可以使用 Geolocation API 获取用户的地理位置数据,并使用 Vue.js 的组件和生命周期方法来处理数据和更新 UI。以下是实现步骤: 首先,在您的 Vue.js 应用程序中,您需要创建一个组件来获取用户的位置。在这个组件中,您可以通过调用浏览器的 Geolocation API 来获取用户的位置信息。 ``` <template> <div> <button @click="getLocation">获取位置信息</button> <div v-if="lontitude && latitude"> 经度: {{longitude}} 纬度: {{latitude}} </div> </div> </template> <script> export default { data() { return { longitude: null, latitude: null } }, methods: { getLocation() { navigator.geolocation.getCurrentPosition(position => { this.longitude = position.coords.longitude this.latitude = position.coords.latitude }) } } } </script> ``` 这个组件包含一个按钮,当用户单击该按钮时将调用 getLocation 方法。该方法将调用 Geolocation API 中的 getCurrentPosition 方法,这将向用户请求权限以访问其位置信息。如果用户同意,浏览器将获取用户的位置信息,并将其保存在该组件的 data 对象中。 现在,我们已经获取到了用户的位置信息。您可以使用这些信息来更新 UI 并执行其他操作。例如,您可以使用这些信息来显示地图或定向用户的位置。 综上所述,Vue.js 使用 Geolocation API 可以轻松获取用户的当前位置信息,并可使用 Vue.js 的组件和生命周期方法进一步处理信息和更新 UI。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值