欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

网站百科

为您解码网站建设的点点滴滴

微信小程序中的用户ID(包括openid和unionid)

发表日期:2019-08 文章编辑:小灯 浏览次数:1861

最近在做微信小程序的开发,以前小程序这块接触的不多,所以就想把在项目中每一步遇到的问题总结下来。
开始做的时候,这个openId肯定是要打交道的。那下面我们来看一下openId到底是怎么一回事吧。
做过微信开发的同学,多多少少都会涉及到用户的唯一标识的问题。由于微信牢牢把控着用户的信息,因此当你需要在微信平台中获取用户的标示信息,必然要通过微信的平台接口来获取(其实这个openId是来区分用户唯一标识)。

openid
同一个应用(App、公众号、小程序)的同一个用户有唯一的openid

unionid
借用微信官方文档中的话来说,如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的

那么如何获取openId和UnionID
我们先看一张图:
根据微信上的文档简化来的
过程并不复杂,其实这里需要说一下的是,为什么会多了一步,开发者服务器去访问微信接口呢?其实,微信官方文档说得很清楚,如果appid和secret存在应用本地,应用本身是容易被破解和抓包,非常容易泄露的,会导致安全问题;因此,放到开发者的服务器去访问,能够保证一定的安全性,除非服务器被攻破,否则很难知道appid和secret的

因此可以实现如下的功能
同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。

1.使用wx.login得到code,之后让后台请求微信服务器,获得的信息包括
openid: 用户唯一标识
session_key: 用来解密微信提供的加密数据
unionid: 可能有,也可能没有

2.用上一步获得的数据进行登录。由于我的公众号与实际应用使用了不同的用户库,所以即使带了unionid,也不一定已经在应用用户库注册过
若用户不存在,则进入注册流程

3.首先通过wx.getUserInfo获取加密的用户信息,然后通过wx.getPhoneNumber来获取加密后的手机号码,之后统一发到后台解密并完成注册。

总结
同一个用户,在你的多个应用中,openid可能都不相同;但是,unionid一定会相同的。所以,如果你有多个小程序或者微信公众号,需要确定是否为同一个用户的时候,就需要unionid来确定。

(站在巨人的肩膀进行的总结,感谢!)


本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户学习参考,本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:http://dengtar.com/20834.html
相关小程序
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.