前言:
目前你们对“微信开发获取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