本发明涉及用户认证,具体来说,涉及一种基于用户认证的二维码生成及处理方法。
背景技术:
1、好多二维码应用场景都是用户用手机主动扫二维码,而不是反向扫码。如果用户只需打开手机展示自己的二维码让扫码设备扫码,扫码设备获得用户信息后进行相应处理,则整个操作就非常简单,而通过人脸识别技术获取虽然相对方便,但也可能存在不易识别和涉及个人隐私等缺点。又如用户在超市结账时可能需要输入会员手机号,然后再主动扫商家付款二维码或主动出示付款码进行结账。如果用户只需出示二维码让商家扫码即可完成结账,省去了核对会员手机号的过程,那操作也简便很多。
2、总之,目前使用反向扫码获取用户相关数据存在如下问题:
3、1. 二维码只能存储字符串信息,如果直接存储了用户信息则容易被识别,且二维码一直有效,他人可以轻松生成同样的二维码进行利用,不具有安全性;
4、2. 使用动态密码的的方式生成二维码维护成本较高;
5、3. 通过各种算法对用户信息、时间戳等数据进行加密生成动态二维码,获取到二维码后进行解密或重建二维码字符串进行比较,这种方法较为繁琐且信息仍可能被破解。
6、针对上述反向扫码出现的问题,目前还没有有效的解决办法。
技术实现思路
1、针对相关技术中的上述技术问题,本发明提出一种基于用户认证的二维码生成及处理方法,能够克服现有技术的上述不足。
2、为实现上述技术目的,本发明的技术方案是这样实现的:
3、一种基于用户认证的二维码生成及处理方法,包括如下步骤:
4、s1移动端app携带用户身份验证信息及支付方式信息调用接口,请求认证服务器生成二维码;
5、s2认证服务器验证请求是否合法,如果是,则读取用户身份验证信息并结合支付方式、服务器密钥和时间戳生成单向加密字符串,并将该字符串作为缓存的key和二维码生成字符串,同时将该用户信息及请求中携带的信息作为缓存的value设置缓存过期时间,并返回二维码、过期时长给移动端app;
6、s3移动端app根据返回的过期时长进行倒计时并判断二维码是否过期,过期则重新请求;
7、s4扫码设备对着移动端app进行扫码,识别成功后将结果字符串提交至终端应用服务器接口;
8、s5终端应用服务器则将该字符串提交到认证服务器接口进行验证;
9、s6认证服务器验证应用服务器请求是否合法,如果合法则验证key是否存在,如果验证key存在则返回用户信息及支付方式信息,否则返回二维码错误或已失效的错误提示;
10、s7终端应用服务器得到认证服务器返回的用户信息后进行相应的处理,并将处理结果告知扫码终端。
11、进一步地,所述用户身份验证信息包括通过私钥加密过的token、用户名和时间戳。
12、进一步地,步骤s6中如果验证key存在认证服务器还向移动端app推送扫码成功的消息和终端应用服务器携带的消息。
13、进一步地,所述终端应用服务器携带的消息包括应用信息、商家信息、订单支付信息和支持的支付方式。
14、进一步地,扫码设备及终端通过轮询的方式向终端应用服务器查询业务处理结果,终端应用服务器则调用业务处理服务器接口查询处理结果。
15、本发明的有益效果:本发明通过认证服务器获取的二维码与用户有一一对应关系,二维码具有身份特征,该二维码可以用于需要验证用户身份的地方;通过认证服务器加密后的二维码随机字符串人类无法识别实际数据,增强了数据安全性;单向加密方法简单,读取对应数据也简单而且速度更快,用户相关数据value只要通过二维码字符串即缓存key读取缓存即可,该value可以存储的数据完全不限于二维码字符串,理论上可以存储无限量的数据;加密方法中加入了时间戳,保证每次生成的二维码都是不同的;设置了缓存过期时间,到期缓存自动失效,避免因为二维码长期有效而被非法利用;将认证服务器独立出来,可以作为第三方认证服务器使用,便于推广和应用到更多需要扫二维码并进行身份验证的系统。
1.一种基于用户认证的二维码生成及处理方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于用户认证的二维码生成及处理方法,其特征在于,所述用户身份验证信息包括通过私钥加密过的token、用户名和时间戳。
3.根据权利要求1所述的基于用户认证的二维码生成及处理方法,其特征在于,步骤s6中如果验证key存在认证服务器还向移动端app推送扫码成功的消息和终端应用服务器携带的消息。
4.根据权利要求3所述的基于用户认证的二维码生成及处理方法,其特征在于,所述终端应用服务器携带的消息包括应用信息、商家信息、订单支付信息和支持的支付方式。
5.根据权利要求1所述的基于用户认证的二维码生成及处理方法,其特征在于,扫码设备及终端通过轮询的方式向终端应用服务器查询业务处理结果,终端应用服务器则调用业务处理服务器接口查询处理结果。