VUE项目与原生Javascript Js功能模块的整合-政府项目涉及Ukey使用和开发

news2024/11/20 2:21:29

一、VUE项目与原生Javascript Js功能模块的整合

        因为产品要整体做三级等保验证,而等保需要做密码安全评价(密评),最终的方案就是需要使用 Ukey 来登录管理后台,而这最终涉及在我们的VUE项目中去调用第三方 UKEY 厂商提供的JS模块包。

1. 关于 Ukey

        如果之前未接触过 Ukey ,可以看看以下我整理的 Ukey 运行流程,这样对开发有很大的帮助。Ukey 就是一个U盘,里面存储了用户的身份信息,一般是身份证号和姓名,同时存储了用户的密钥私钥,只可执行和获取Ukey的基本信息,不可读取或修改其内部数据。第三方都会提供一些DEMO页面让用户测试,demo也是一个网页,在页面中可以获取用户的证书名称(就是用户的姓名),然后输入 pin码验证,pin码就是要使用这个 Ukey 所需要的密码,一般的厂商都会以用户身份证号后6位或者6个1之类的作为初始默认密码。pin验证成功之后就通过了身份认证。

2. Ukey 登录系统流程步骤整理

        所以使用 Ukey 登录系统的流程整理出来就是以下几步:

  • 1.先安装 Ukey 厂商提供的插件工具软件。
  • 2.插上 Ukey 至USB口,打开浏览器访问目标系统。
  • 3.登录界面使用JS脚本读取并加载已经识别的UKEY列表,可选择。
  • 4.用户选择证书Ukey,输入对应Ukey 的pin码,点击开始验证。
  • 5.pin码会被提交至本地 Ukey 的服务上进行验证
  • 6.验证通过会提示成功;失败一般会提示失败次数。
  • 7.有的Ukey 厂商会对失败次数做记录,失败多次会锁死Ukey。
  • 8.需要注意一点是,拔出 UKEY要让当前登录用户自动退出。

        UKEY的作用体现在哪呢?使用账号密码登录的话,你可以使用这个账号密码在任何电脑终端上登录,而使用 UKEY,你只能同时在一个地方登录。而且必须配合 UKEY 硬件同时使用。

3. Ukey 的js代码与项目的整合

        Ukey 的js代码与项目的整合,如果原来就是纯原生的JS就相对较方便整合。使用VUE的相对麻烦,但也还好。我这里已经开发测试通过了登录页的整合。总结在vue开发中需要注意的几项。

        A. Vue中调用原生的javascrip方法时总是报错 Uncaught ReferenceError: xxxxx is not defined

        开始我将原生的 JS 方法写到 export default 之外,然后在 VUE 的mounted周期中调用 JS方法, Vue总是报错 Uncaught ReferenceError: xxxxx is not defined。显示这些定义的方法都没有在 VUE的作用域内。Vue要能调用原生JavaScript方法,需要确保这些方法在Vue实例的作用域内或者是在window对象上。

        为什么我要在外部定义这些方法,因为这些方法里会调用第三方厂商如 xtxsync.SOF_GetVersion() 取证书的版本号、SetUserCertList 将证书列表写入等JS操作,而这些 xtxsync.js 内部的操作放在VUE里面执行会出问题,所以我后来用了一个简单的方法就是将这些涉及 xtxsync.的方法写在window对象上。

#示例如下: 
window.function_name=function(){
alert("get from vue");
}

        上面这些function_name方法的定义代码可以写在 mounted中,在 mounted中直接调用即可。

        B. UKEY证书的拔出 回调 SetOnUsbKeyChangeCallBack 

        我在使用第三方厂商的 SetOnUsbKeyChangeCallBack UKEY证书的拔出 回调时尝试了很多次,在登录界面可行、在登录之后的页面框架层也加载了这个拔出触发JS操作,但就是奇怪总是出现开始能检测后来又检测不了的情况,可能是我的JS有问题吧,但也没有排查出问题,这些教程我都记不得太多了,因为用户拔出主要涉及用户的本地存储sessionStorage的清理,但总是调用 VUE的 sessionStorage出现问题。记得这期间涉及了一些 this调用异常的问题,改成that有些地方可行,但有时又有些又不正常。而项目又需要马上进行验证。我后来就干脆放弃了这个尝试,使用了定时脚本来处理。

this.certs = setInterval(() => {
       var certsNow = xtxsync.SOF_GetUserList();
       if(this.certs!='' && certsNow != this.certsNow){
        sessionStorage.clear();
            window.location.href='/';
   }
       this.certs = certsNow;
    }, 2000);

这样能实现密评的需要即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浙大数据结构:08-图8 How Long Does It Take

这道题算是较为简单的拓扑排序题&#xff0c;难度不大 机翻 1、条件准备 n,m为n个结点&#xff0c;m条边。 tim数组存到该结点完成的最早时间&#xff0c;会一点点更新 graph存有向边的时间 indegree数组存每个结点的入度 #include <iostream> #include <vector&g…

扫描电镜是用来测什么的?

扫描电镜是一种用于对样品进行微观尺度形貌观测和分析的仪器。它能够提供高分辨率的图像&#xff0c;帮助科学家和工程师了解样品的微观结构和特性。 一、扫描电镜的一般测量功能 微观形貌观测 扫描电镜可以清晰地观察到样品表面的微观形貌&#xff0c;如颗粒的形状、大小、…

【Oracle APEX开发小技巧9】通过页面设置文本大写避免upper()函数转换占用额外资源

进行规范改造登录函数和存储过程时&#xff0c;发现有些应用的登录函数/存储过程中有upper()函数的使用&#xff0c;因为登录时输入工号&#xff0c;默认无更改&#xff0c;为了与数据库中存储的数据对应&#xff0c;通过upper()将其文本中字母设置为大写。 若要解决这个问题&…

C++初阶---C++入门(下)

目录 一、内联函数 1.内联函数的定义与底层机制 0x01.内联函数的定义 0x02.内联函数的底层机制 2.内联函数的优缺点 优点&#xff1a; 缺点&#xff1a; 3.内联函数的使用建议 4.内联函数的注意事项 二、auto关键字&#xff08;C11&#xff09; 1.代码示例 2.auto使…

flask项目框架搭建

目录结构 blueprints python包&#xff0c;蓝图文件&#xff0c;相当于路由组的概念,方便模块化开发 例如auth.py文件 from flask import Blueprint, render_templatebp Blueprint("auth", __name__, url_prefix"/auth")bp.route("/login") d…

李沐 X 动手学深度学习 深度学习介绍 学习笔记

x轴是不同的模式&#xff1a;符号学---概率模型---机器学习y轴是我们想做的东西&#xff08;问题领域&#xff09;&#xff1a;感知&#xff08;了解这是什么东西&#xff0c;能看见这个物体&#xff09;---&#xff08;做&#xff09;推理&#xff08;基于我看到的东西想象未来…

揭秘猫咪掉毛的真实原因有哪些?掉毛飞毛宠物空气净化器来救援!

作为三猫家庭&#xff0c;日常家里的毛发、异味一直是困扰我很久的难题。最近窗外的世界柳絮满天飘&#xff0c;家里猫毛满飞&#xff0c;养猫家庭应该都不陌生吧&#xff0c;鼻子嘴巴甚至是眼睛里总感觉有猫毛。不管猫砂换的多勤快&#xff0c;也总能闻到阵阵臭味&#xff01;…

【git】git add时warning:LF will replaced by CRLF

git add时warning&#xff1a;LF will replaced by CRLF 一&#xff0c;问题现象二&#xff0c;问题原因&解决方法 一&#xff0c;问题现象 二&#xff0c;问题原因&解决方法 这个警告的原因是 Git 在进行文件添加操作时&#xff0c;发现行尾结束符不一致。 在不同的…

Klick‘r3.0.4 |智能自动点击,高效省力

Klick’r 是一款专为 Android 设计的开源自动点击工具&#xff0c;能识别屏幕上的图像并进行相应操作。支持游戏中的自动点击、应用测试及日常任务自动化。 大小&#xff1a;27M 百度网盘&#xff1a;https://pan.baidu.com/s/1881Zfevph6_2Zhdc-H_R4A?pwdolxt 夸克网盘&…

定点数和浮点数的详细介绍(一)定义、范围、位宽

1.定点数 1.1定点数描述 定点数包括定点小数(纯小数)、定点整数(纯整数)、整数和小数位数固定的实数。 1.2定点小数: 小数点默认在符号位后面,首位为符号位,其他为数值位(在用二进制代表小数时,例如0xFF,就表示0.5+0.25+0.125+0.0625+0.03125........) 例如,用…

【p2p、分布式,区块链笔记 UPNP】: Libupnp的线程池简述

线程池在网络编程中是一个关键的组成部分&#xff0c;尤其是处理高并发请求时&#xff0c;线程池可以显著提高系统的性能和资源利用效率。它的关键组成部分包括以下几个要素&#xff1a;任务队列&#xff1a;一个&#xff08;或多个&#xff09;用于存放待执行任务的队列。任务…

简单花20分钟学会top 命令手册 (linux上的任务管理器)

1. 介绍 top 是一个常用的 Linux 命令行工具&#xff0c;用于实时监视系统资源和进程的运行情况。用户可以通过 top 命令查看系统的 CPU 使用率、内存占用情况、进程列表等重要信息&#xff0c;帮助快速了解系统运行状态并进行性能监控。该工具可以认为相当于windows上的任务管…

什么是MAC地址?有必要隐藏MAC地址吗?

你是否曾经停下来思考&#xff0c;每当你上网时&#xff0c;你的数字足迹可能会泄露你的个人信息&#xff1f;可能你会问&#xff0c;MAC地址是什么&#xff1f;简单来说&#xff0c;每台联网的电脑MAC地址都是独一无二的&#xff0c;就像是你设备在网络世界中的身份证。它能帮…

MySQL多表查询案例

先看我的表数据 dept表 emp表 salgrade表 student表 course表 student_course表 1. 查询员工的姓名&#xff0c; 年龄&#xff0c; 职位&#xff0c; 部门信息&#xff08;隐式内连接&#xff09; -- 表&#xff1a;emp&#xff0c; dept -- 连接条件 emp.dept_id dept.id …

那些年,我们一起追过的函数:揭秘数学世界里的‘网红’们

在数学中&#xff0c;函数是一种特殊的关系&#xff0c;它将一个集合中的每个元素&#xff08;称为自变量或输入&#xff09;映射到另一个集合中的唯一元素&#xff08;称为因变量或输出&#xff09;。根据函数的性质和定义域、值域的不同&#xff0c;可以将函数分为多种类型。…

七氟烷麻醉药市场研究:未来几年年复合增长率CAGR为4.2%

七氟烷是一种吸入麻醉剂&#xff0c;用于在外科手术过程中诱导和维持全身麻醉。七氟烷是一种挥发性麻醉剂&#xff0c;常用于在外科手术过程中诱导和维持全身麻醉。它因起效快和作用消失快而受到青睐&#xff0c;是成人和儿科患者的理想选择。七氟烷通常通过吸入起作用&#xf…

如何使用Colly库进行大规模数据抓取?

在互联网时代&#xff0c;数据的价值日益凸显&#xff0c;大规模数据抓取成为获取信息的重要手段。Go语言因其高效的并发处理能力&#xff0c;成为编写大规模爬虫的首选语言。Colly库作为Go语言中一个轻量级且功能强大的爬虫框架&#xff0c;能够满足大规模数据抓取的需求。本文…

开源 Three.js 案例及入门教程分享

更多three.js学习资料分享https://www.wjx.cn/vm/OaQEBVS.aspx# 01.Three.js 雨和屋顶 在线预览&#xff1a; https://codepen.io/prisoner849/full/yLWMLjK 源码&#xff1a; https://codepen.io/prisoner849/pen/yLWMLjK 02.Three.js 有趣的 3D 航行 源码&#xff1a; …

【动态网站资源保存下载】

文章目录 概要解决思路技术细节小结 概要 我们在网上浏览网站时&#xff0c;经常有这样的需求&#xff1a;将浏览的网页保存下来&#xff0c;即使无网的情况下也可以继续浏览。比如一些教育类网站的PPT&#xff0c;内容为HTML格式的&#xff0c;无法作为PPT格式下载下来&#…

鸿蒙NEXT开始公测,哪些机型可以升级?鸿蒙版微信界面简洁

华为 Harmony OS NEXT 于10月8日正式开启公测&#xff0c;对鸿蒙 NEXT 系统感兴趣&#xff0c;想要第一时间尝鲜鸿蒙系统的话&#xff0c;千万不要错过本篇文章&#xff01; 哪些手机可以参与鸿蒙 NEXT 公测&#xff1f; 首批参与鸿蒙 NEXT 公测的机型有华为 Mate 60 系列、华…