微信小程序中用户唯一ID的获取

折腾到半夜,搞得挺兴奋,总结一下,免得忘了:

1、微信小程序直接获得的是一些简单信息,基本无用

2、用户唯一标识是openid,还有一个unionid是关联多个公众号之类情况下用,我不大关心

3、在getUserInfo的返回数据中,有加密信息,

wx.getUserInfo({
  success: function(res) {
  }
})

res包括userInfo,iv,rawData,signatureencryptedData,这些东西的关系比较复杂,我理解是这样的:

1)userInfo包括简单的用户信息 2)重要信息在encryptedData中,解开后包括:

3)要解开的话,需要密文-encryptedData,向量-iv,密钥-session-key。密钥这里没有。 4)rawData,signature是来做校验的,不太关心

4、session-key的获取方式:

1)登录成功后,传给回调的参数包括一个code,但这个code会很快失效 2)通过调用 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

可以获得session-key和openid。除了code,其他参数很简单,文档里有说明。 在浏览器中测试没有问题,但是,在小程序中也不能运行,因为小程序只能访问认证过的服务器。换言之,必须要把这个东西放到服务器上,从微信中去调用服务器的页面,服务器的页面再去访问这个接口,然后再把数据反馈回来。 道理搞明白其实就很简单了,获得了openid,其实也没用必要再去解密了,因为那里除了openid,也没啥想要的东西。

我的小程序:简单账本

参考:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

http://bbs.umeng.com/thread-6081-1-1.htmlhttp://www.cnblogs.com/nosqlcoco/p/6105749.html

http://blog.csdn.net/u013803499/article/details/52873537

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

Linux下可以替换运行中的程序么?

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。结果朋友发来一个执行结...

21520
来自专栏魏艾斯博客www.vpsss.net

更换 sitemap 插件为 Google XML Sitemaps 及相关设置过程

26020
来自专栏架构师之路

im协议设计选型(上)

im协议设计选型(上) 周末在一个Qcon群里分享了一些im技术,抽取出其中im协议选型相关的内容,跟大家分享。 分享人:58沈剑,58同城技术委员会主席,高级...

439100
来自专栏欧阳大哥的轮子

论MVVM伪框架结构和MVC中M的实现机制

一直都有人撰文吹捧MVVM应用开发框架,文章把MVVM说的天花乱坠并且批评包括iOS和android所用的MVC经典框架。这篇文章就是想给那些捧臭脚的人们泼泼冷...

11330
来自专栏SDNLAB

SDNLAB技术分享(五):浅谈Open vSwitch移植

好了我们开始今天的主题吧!! 前一段时间自己私下一直学习Open vSwitch。起初学习Open vSwitch的目的,只是为了更好的学习OpenFlow协议...

396150
来自专栏Samego开发资源

仅78行代码实现微信撤回消息查看 | Python itchat

35540
来自专栏ytkah

保存一下dedecms数据库表和字段说明,方便日后查询

玩dedecms有一段时间,对它的字段不是很了解,在此做个记录,方便日后查询 dede数据库字段说明: dede_addonarticle 附加文章...

28740
来自专栏移动端开发

Telegram学习解析系列(三) : Build Telegram报错分析总结

正好通过这次 Telegram 的运行,很想把常见的项目运行的错误好好的总结一下,在前面的博客中,又星星散散的总结过错误和一些警告的消除方法,这次把错误处理一下...

651110
来自专栏达摩兵的技术空间

app中的webview通识篇(上)

如果你还是第一次与app合作开发webview的页面,那么对于如何调试,可能有哪些问题可能是不够了解的。本文尝试性的根据自己的经验给大家一个入门级别的了解,如果...

79520
来自专栏腾讯云安全的专栏

你熟悉的Android Root 方式有哪些?|附演示视频

30150

扫码关注云+社区

领取腾讯云代金券