微信小程序UnionID 和授权机制

微信小程序UnionID 和授权机制,第1张

如果开发者拥有多个移动应用,网站应用,公众号和小程序,可以通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开发平台账号下的移动应用,网站应用,公众号和小程序,用户的 UnionID 是唯一的。 换句话说,同一个用户,对同一个微信开发平台的不同应用,UnionID是唯一的。

}

获取完用户信息后通过 wx.login 获取用户的 code 临时登陆授权码,传给后台服务器调用 code2session 获取用户的 openid (用户的唯一表识,保存本地)。然后将openid 和用户信息录入用户表,回调之后前端拿到录入用户的生成的userId,保存到本地。保存到本地的openid和userId会在用户卸载小程序后失效。如果失效,用户需要重新授权。

开发者可通过OpenID来获取用户基本信息。请使用https协议。

参数:

公众号和小程序均可以使用 AppID 和 AppSecret 调用接口来获取 access_token 。 AppID 和 AppSecret 可在“微信公众平台-开发-基本配置”页中获得(需要已经成为开发者,且帐号没有异常状态)。调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。小程序无需配置IP白名单。

首先公司开发了小程序, 公众号网页和app等, 之前都是用的openid来区分用户, 但openid只能标识用户在当前小程序或公众号里唯一, 我们希望用户可以在公司各个产品(比如公众号, 小程序, app里的微信登录)之间, 可以保持用户的唯一性, 还好微信给出了unionid.

下面分两步介绍一下 微信小程序 获取unionid的过程.

1. 首先 在微信公众平台注册小程序 , 然后在小程序上模拟登录流程.

注 : 这里只是简单登录流程, 实际中需要维护登录态, wx.checkSession() 可以检查此时的登录态是否过期. 若过期, 要再次调用 wx.login() , 否则调用 wx.getUserInfo() 会拿不到用户数据.

注 : 此时后台服务器接收到你发的 code, 再用appid和appSecret等请求微信可以拿到openid和session_key encrypted_data, iv 等数据, 通过appId, appSecret解密可以获得openid和其他信息. (此时解出来并没有unionid, 接下来看第二步)

2. 接下来到 微信开发平台去 绑定开发账号.

一开始我也是对开放平台, 公众平台什么的有点懵, 后来看到开发平台的管理中心才明白, 这些移动应用, 网站应用 或者公众号/小程序 能绑定同一个微信开发平台账号下, 则同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

大抵就是上图这样设置吧 , 立刻生效(有时也会过几分钟吧

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12086824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存