.NET CORE+uniapp 微信小程序开发 解密用户信息与手机号

背景介绍

我们公司开发一个微信小程序,采用前后端分离的方式,后端使用了.NET CORE的框架,前端则是使用了目前非常火热的uniapp,以迎合不同平台的开发需求。
在开发小程序的过程中,虽然有些磕磕碰碰,但也算是比较顺利的完成了。其中,有一个地方值得我在这里记录下来,以防后人踩坑:那就是微信小程序的解密。
在我们开发的小程序当中,需要获取微信用户的用户信息(重要的是unionid)以及手机号。因此,需要对加密数据进行AES解密。为此,我们开发了一个API,在这个API中将对两种加密数据进行解密。

小程序用户信息解密流程

我们需要记录用户的用户信息与手机号,所以需要调用微信的getPhoneNumber与getUserInfo,获取这两个API返回的加密数据,使用从微信换取的sessionKey去解密数据。
流程如下:
1、小程序生命周期开始:使用code换取sessionkey,并记录在redis中,返回thirdsession给前端;
2、点击用户信息按钮:在回调中获取用户加密数据,使用微信API的checksession以确认sessionkey没有过期,若过期则重新获取code;
3、点击用户手机号按钮:与用户信息按钮同理;
4、调用自己服务端API:若checksession均success即不需要使用code重新换取sessionkey,则直接使用thirdsession对应的sessionkey解密;否则,先使用thirdsession对应的sessionkey解密,失败则再使用新code换取的sessionkey解密。

补充注意:微信的checksession有问题,此API返回success,但是有时使用redis的sessionkey进行解密会失败。其中一种解决方式是:当发现异常信息为padding。。。时,告知前端直接重新获取新code以再次解密;当再次解密也失败时,则重新回到小程序首页,让用户重新点击两个按钮,整个流程重新来过。

资料查询

1、微信官方文档
2、.NET CORE的session管理、REDIS使用
AES解密,需要加密字符串、iv以及对应的key。当这三者
3、微信小程序的解密流程

Windows下Redis安装与使用

1、云服务器安装Redis服务器并启动服务
Windows的Redis下载
本人下载的是Redis 5.0.9 for Windows的Redis-x64-5.0.9.zip;

Redis安装步骤
按照此步骤,将Redis设置为服务,以免误关闭cmd导致Redis服务中断;

这里使用的是阿里云服务器,需要在安全组添加6379内网访问,并且在防火墙入站中添加规则;

2、Redis配置
在Redis的解压目录下,找到redis.windows.conf文件;设置几处地方以允许远程连接——
(1)查找 “bind 127.0.0.1“ ,注释掉这一句(前面加#);这个是设置访问IP白名单
(2)protected-mode yes 改为 protected-mode no;关闭保护模式,允许远程连接;
(3)可选:查找 # requirepass foobared ,加入 requirepass 密码,这样可以为你的Redis服务器设置访问密码。

3、Redis管理工具、远程连接Redis服务器

RDM(Redis Desktop Manager)
资源就不贴出来了,介绍连接的操作
RDM连接服务器
Name随意;Host填服务器IP;Port默认6379端口;Auth填入密码,无密码可不填;
测试连接是否可以,可以就按OK就连上了;其余的和一般数据库管理工具类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值