位置: IT常识 - 正文

如何使用(扫描)二维码进行登录(如何使用扫描王)

编辑:rootadmin
一、项目背景 这是我加入博客园的第一篇博客文章,我将以我毕业时写的项目里一个功能模块进行展开。 扫码功能在很多大型项目、论文要求中经常用到,主要以实现用户授权(登录、微信小程序跳转)、货币支付、货物入仓为主。在生活中常见的有:QQ扫码登录、微信支付、餐厅点餐、扫码微信公众号等。 二、项目需求分析和概 ... 一、项目背景这是我加入博客园的第一篇博客文章,我将以我毕业时写的项目里一个功能模块进行展开。扫码功能在很多大型项目、论文要求中经常用到,主要以实现用户授权(登录、微信小程序跳转)、货币支付、货物入仓为主。在生活中常见的有:QQ扫码登录、微信支付、餐厅点餐、扫码微信公众号等。二、项目需求分析和概要设计我的毕业项目里包含了扫码登录、虚拟货币支付和扫码传输json数据,这里我就以扫码登录为例。实现包含了前端、后端、数据库(三者合一实现的Web端)及Android端。1、数据库完整的功能首先需要在数据库里创建两个表(仅说明实体中重要的属性,其他次要属性和分库分表根据自身项目需求添加):1、wait_for:等待,用于对已生成的二维码进行备案,重要属性有id、密匙、生成时间,主要用于验证过时的二维码。扫描之后,如果过时,删除这段元组,同时刷新界面二维码。Create table wait_for( wait_for_id int PRIMARY KEY auto_increment, wait_for_key varchar(30) not null, wait_for_time datetime )2、collect:收录,其实就是一种日志,Android端扫码登录之后,根据手机端解析的二维码密匙,在等待表里进行密匙检索,然后通过ajax反馈到对应电脑的中去,从而实现扫码登录。同时将此操作备案,用于之后的扫码登录安全验证,可以有效的防止电脑木马获取到用户授权密匙。重要属性:id、密匙、用户名(与用户表主外键联系)、电脑ip(将ip转换为int类型,使用INET_ATON()函数去检索,检索效率会得到提升)、授权时间。Create table collect( collect_id int PRIMARY KEY auto_increment, wait_for_key varchar(30) not null, user_name varchar(15) not null, collect_ip int, collect_time datetime )2、前端前端相对比较简单。1、将后端生成、备案过的二维码映射到界面上。(密匙我使用的uuid随机生成的字符串,如,dfec86592fb24f95ab6c84bbfb779e34)2、通过ajax技术设置每隔0.5s或者1s访问一次请求。(请求路径用http://localhost:8080/select_wait_for为例)3、完成后跳转主界面。(请求路径用http://localhost:8080/sm_main为例)uuid = "dfec86592fb24f95ab6c84bbfb779e34"$.ajax({ url: "http://localhost:8080/select_wait_for", data: { "uuid": uuid }, type: "post", dataType: "json", success: function(data) { if (data.length == 0) {} else { window.clearInterval(c); window.location.href = "http://localhost:8080/sm_main"; } } });3、后端后端使用的是SSM框架技术。需要在控制器(一般是controller文件)中添加三个映射请求:1、add_wait_for:将生成好的二维码进行备案,用于之后的Web和Android信息交互验证,实现精准的扫码授权。//添加二维码事件 @RequestMapping("add_wait_for") @ResponseBody public void add_wait_for(WaitFor w,HttpServletRequest request, HttpServletResponse resource) { //添加表wait_for对应的数据 ... }2、select_wait_for:这里是前端ajax不断访问的请求,用于验证Android端那边是否确认授权。 @RequestMapping(value = "select_wait_for",method = RequestMethod.POST) @ResponseBody public void Select_wait_for(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException { //根据前端返回的密匙检索collect表内的元组,获取用户授权 ... }3、sm_main:ajax验证成功,获取到授权后,自动跳转至主界面。//自动登录跳转方法 @RequestMapping(value = "sm_main") public String Sm_main() { return "main"; }4、Android端android端的设计思路也是比较简单。1、首先需要获取到网络、相机等权限。2、然后通过二维码算法解析二维码,转换为字符串或者是json数据(不会二维码算法,推荐使用zxing封装好的包)3、最后通过HTTP协议访问web端后端请求,提供二维码密匙(解析所得)、用户名授权内容,向collect表添加对应元组,确认用户授权。最后再贴一张UML顺序图,欢迎路过的大佬指正

推荐整理分享如何使用(扫描)二维码进行登录(如何使用扫描王),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:一体机如何使用扫描,op手机如何使用扫描,hp打印机如何使用扫描,如何使用扫描王转PDF,如何使用扫描全能王扫描文件转成pdf,如何使用扫描仪扫描文件到电脑上,如何使用扫描王,如何使用扫描王转PDF,内容如对您有帮助,希望把文章链接给更多的朋友!

本文链接地址:https://www.jiuchutong.com/zhishi/303330.html 转载请保留说明!

上一篇:复习 - node.js(接口案例)(nodejs基础知识)

下一篇:狂神说mysql笔记(狂神说css笔记)

  • qq有青少年模式吗(qq有青少年模式有什么用)

    qq有青少年模式吗(qq有青少年模式有什么用)

  • 苹果手机界面变黑色如何改成白色(苹果手机界面变成搜索怎么办)

    苹果手机界面变黑色如何改成白色(苹果手机界面变成搜索怎么办)

  • WPSoffice如何设置页面背景(wpsoffice如何设置不显示最近使用文档)

    WPSoffice如何设置页面背景(wpsoffice如何设置不显示最近使用文档)

  • 社群空间怎么开通(社群空间什么意思)

    社群空间怎么开通(社群空间什么意思)

  • word怎么设置表格靠上居中(word怎么设置表格底纹)

    word怎么设置表格靠上居中(word怎么设置表格底纹)

  • 摄影师后期用ps还是lr呢(摄影师专用ps软件)

    摄影师后期用ps还是lr呢(摄影师专用ps软件)

  • 电脑如何截取电视剧片段(电脑如何截取电视剧的某一片段)

    电脑如何截取电视剧片段(电脑如何截取电视剧的某一片段)

  • 荣耀30有无线充电功能吗(荣耀30无线充电改装)

    荣耀30有无线充电功能吗(荣耀30无线充电改装)

  • 微信视频号是什么用途(微信视频号是什么时候出来的)

    微信视频号是什么用途(微信视频号是什么时候出来的)

  • 抖音主页怎么不显示年龄(抖音主页怎么不显示ip)

    抖音主页怎么不显示年龄(抖音主页怎么不显示ip)

  • 苹果xra2108什么意思(apple iphone xr (a2108) 128gb)

    苹果xra2108什么意思(apple iphone xr (a2108) 128gb)

  • b站关注怎么设置不可见(B站关注怎么设置自动回复)

    b站关注怎么设置不可见(B站关注怎么设置自动回复)

  • 荣耀手机的OTG在哪(荣耀手机的OTG在哪里打开)

    荣耀手机的OTG在哪(荣耀手机的OTG在哪里打开)

  • 苹果手机蜂窝数据打开了为什么没有网(苹果手机蜂窝数据选项没了)

    苹果手机蜂窝数据打开了为什么没有网(苹果手机蜂窝数据选项没了)

  • vivox30pro参数(vivox30pro参数配置)

    vivox30pro参数(vivox30pro参数配置)

  • 大王卡看芒果tv免流吗(大王卡看芒果免流量吗)

    大王卡看芒果tv免流吗(大王卡看芒果免流量吗)

  • 微信登录电脑后会看到手机上的聊天记录吗(微信登录电脑后会留下聊天记录吗)

    微信登录电脑后会看到手机上的聊天记录吗(微信登录电脑后会留下聊天记录吗)

  • vivo手机怎么看电池寿命(vivo手机怎么看激活时间)

    vivo手机怎么看电池寿命(vivo手机怎么看激活时间)

  • 数字计算机模拟计算机分类依据(数字计算机模拟计算机)

    数字计算机模拟计算机分类依据(数字计算机模拟计算机)

  • 苹果11尺寸(苹果11尺寸长宽多少厘米)

    苹果11尺寸(苹果11尺寸长宽多少厘米)

  • vivox27闪充失灵怎么解决(vivox23闪充失灵)

    vivox27闪充失灵怎么解决(vivox23闪充失灵)

  • ios12.2的设备管理在哪里(ios12.4设备管理不见了)

    ios12.2的设备管理在哪里(ios12.4设备管理不见了)

  • ps自定义形状(ps自定义形状工具怎么添加)

    ps自定义形状(ps自定义形状工具怎么添加)

  • 福吉谷国家历史公园中的小屋,宾夕法尼亚 (© Mark C. Morris/Shutterstock)(日本福吉山)

    福吉谷国家历史公园中的小屋,宾夕法尼亚 (© Mark C. Morris/Shutterstock)(日本福吉山)

  • 股东权益是资产吗
  • 交易性金融资产和其他权益工具投资的区别
  • 未取得发票的费用,在汇算清缴中按利润计算吗
  • 社保工伤保险可以交两家公司吗
  • 一般纳税人增值税申报操作流程
  • 货拉拉电子货票收款凭证是发票吗
  • 可以税前扣除的商业健康保险有哪些
  • 全面解析是什么意思
  • 资本溢价能不能退还股东呢
  • 企业开办费的会计和税务处理
  • 公司一般户走账要交税吗
  • 2018年高新技术企业所得税
  • 单位没车能用停车票不能用加油票吗?
  • 个人所得税成本费用包括哪些
  • 销售原材料结转会计分录
  • 农副产品免税怎么报税
  • 辞退员工会计分录
  • 全部出售子公司怎么做账
  • 公司代缴个人社保费怎么做账
  • 领取劳保用品如何做凭证怎么做会计分录?
  • 发生以前年度损益调整
  • 自产自销的茶叶要交增值税吗
  • 有限公司注册资金多少好
  • 苹果桌面小工具怎么设置
  • 10款手机赚钱软件下载
  • 股东可以随时退出吗
  • php 统计
  • php imagettftext()函数
  • php的api接口
  • php图像
  • 暂估增值税可以抵扣吗
  • php扫二维码
  • 公章的法律效力范围
  • js文件合并工具
  • web自动化测试平台
  • Laravel+jQuery实现AJAX分页效果
  • 注销退税资格申请报告模板
  • 所有者权益总计怎么算沙盘
  • 让客户抽奖赠送什么礼物
  • 个人综合所得汇算申报流程
  • ubuntu下mysql版本升级到5.7
  • 固定资产加速折旧最新税收政策2023
  • 电商会计如何做账
  • 结息会计凭证怎么写
  • 材料成本差异的借方表示什么
  • 消防设备计入什么科目
  • 所得税费用本期金额怎么算
  • 长期股权投资权益法账务处理
  • 抚恤金的种类有多少种
  • 用友软件接口
  • 私车公用产生的费用算不算在公务用车运行维护费中
  • 无形资产如何做账务处理
  • 递延所得税资产和负债账务处理
  • 国家规定房屋买卖中介费
  • 个人购买股权和公司购买股权比较
  • 微信支付属不属于电子商务
  • 经营性应收项目和经营性应付项目
  • 密码区出框
  • sqlserver
  • centos7 syslog
  • win10预览版好用吗
  • server core安装完成后按什么进行登录
  • win8.1 下载
  • linux里cat命令
  • win10系统mmc不能打开文件
  • pruttct.exe - pruttct是什么进程 有什么用
  • 当前用户已注销
  • linux 常用命令大全及其详解
  • win7宽带连接改成无线网络
  • pavprsrv.exe - pavprsrv是什么进程 有什么用
  • win7怎么设置u盘启动为第一启动项
  • win10每周更新
  • 排序方法python
  • html5仿微博代码
  • 用python做web
  • android布局背景颜色的代码
  • Python的内置字典数据类型为___
  • javascript怎么学
  • 江西省国家税务局电子税务局
  • 降低税率的坏处
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设