龙空技术网

微信小程序维护登录态与获取用户信息openid

青山依旧337 160

前言:

目前你们对“微信开发获取openid”大体比较注意,大家都需要知道一些“微信开发获取openid”的相关资讯。那么小编也在网摘上网罗了一些有关“微信开发获取openid””的相关知识,希望小伙伴们能喜欢,兄弟们快快来了解一下吧!

一、登录

通过 wx.login() 获取到用户登录状态之后,需要维护登录态。

要注意不应直接把 session_key、openid 等字段作用户的标识或者 session 为了标识,而应自己派发一个 session 登录态。

开发者自己生成的 session,应保证其安全性且不应设置较长的过期时间。session 派发到小程序客户端后,可将其存在 storage ,用于后续通信使用。

通过wx.login()获取code,发送给服务器,然后去请求微信服务器换取得到对应的openid与session_key.

openid是该用户在小程序中的唯一标识,用于模板通知之类的。

session_key就用来解密用户的敏感信息(unionid之类的)。

unionid是微信用户在所有微信平台下的唯一标识.

二、数据的加密

wx.login()登录之后。获取用户信息。

其中一些不敏感的信息在返回的 result中的userInfo里。

如果想要获取敏感信息。openid,unionid之类的。则需要从密文中去解密得到。

而密文则在encryptedData这个字段当中。我们去请求我们服务器去解密然后得到敏感信息后则可以保存起来。

接口如果涉及敏感数据(如wx.getUserInfo当中的 openId 和unionId ),接口的明文内容将不包含这些敏感数据。

如果需要获取敏感数据,需要对接口返回的加密数据( encryptedData )进行对称解密。 解密算法如下:

对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。

对称解密的目标密文为 Base64_Decode(encryptedData),

对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是16字节

对称解密算法初始向量 iv 会在数据接口中返回。

标签: #微信开发获取openid