请在Chrome、Firefox、IE8+等现代浏览器浏览本站。 本博客所有文章为原创,图片不加水印,随意转载,但请注明来源,谢谢!

小程序用户登录,后端解密用户信息 Session_key + EncryptData + iv

后端 kxjhwbb 550℃ 0评论

初次接触小程序登录可能一头雾水,在这里做一些记录

大概逻辑是这样

1、小程序wx.login()开始登录,返回登录code,后端使用code便可以获得session_key,openid,似乎不需要用户同意,因为这个code仅仅是一个5分钟有效的凭据;

2、小程序wx.getUserInfo()获取用户信息+敏感信息(加密后的数据encryptData+iv),所谓敏感信息其实就是多个openid,调用getUserInfo()前必须有login()过且未过期;对用户资料可靠度要求不高的,其实这一步就可以直接把用户资料丢给后端了;

3、后端使用第一步得到的code获取session_key及openid,openid是用户的唯一性凭据,存入数据库,作为后面识别此用户的关键;

4、如果对用户资料可靠度要求很高,在此使用session_key对第二步得到的encryptData+iv做解密处理,得到用户信息及openid,其实这里的openid没有什么意义(前面已经得到),可以作为存入数据库的主键使用。

 

用户同意/拒绝按钮触发点

大家不要觉得login的时候就触发了提醒用户授权的界面,其实这个界面由小程序调用wx.getUserInfo()时触发,如果用户拒绝,将没有加密内容返回。因此即便login()得到了session_key,也没有任何意义,当然,你可以使用openid来简单区分用户(随机产生用户名?)…

用户登录(提供openid)是不需要用户同意的,用户信息(昵称、头像等)是需要用户同意才能在后端或前端得到的。

 

最后给出相关解密函数

后端解密用户资料数据

后端获取session_key

 

 

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址