小程序账户系统(openid和unionid)简介
对于开发者和产品经理来说,这篇文章提供了小程序账户系统(openid和unionid)的基础理解,有助于提升产品设计和技术设计的效率。openid是微信小程序的独特标识,每个用户在不同的小程序中都有一个唯一的openid,确保了用户的唯一性。而unionid则更为巧妙,它在微信的多个产品之间,如公众号和小程序,尤其是在同一主体(公司)下拥有多个应用时,起到了关键的账号关联作用。通过微信开放平台的unionid,可以将用户在不同小程序和公众号中的账户系统连通起来。要获取openid,首先在小程序中调用wx.login()接口获取登录凭证(code),然后将code传递给后台,由后台通过微信提供的接口获取session_key和openid。接口需要的参数包括appid、secret(在微信公众平台小程序管理后台找到)、js_code(前端获取的code)以及固定的grant_type值。关于unionid,获取条件和配置流程在官方文档《UnionID机制说明
微信公众号粉丝迁移unionid、openid会变吗?
UnionID在微信公众号中扮演着区分用户唯一性的角色。同一微信开放平台帐号下的多个应用、网站应用和公众账号(包括小程序),用户的UnionID是唯一的,这样即便是同一用户在不同应用中,UnionID也是相同的。在进行公众号粉丝迁移时,UnionID不会发生变化。不过,需要提前将UnionID提供给目标账号,避免冲突,确保其唯一性。通常,开发工作由开发者完成,只需向他们说明情况,他们查阅相关文档后即可理解。我们为客户提供迁移服务时,也是这样操作的:运营负责解释问题,开发负责配置更改,并指导开发重新配置。在开发配置方面,需要注意公众号授权用户的OpenID转换。若错过提前配置,可能会导致用户数据丢失,特别是会员数据的丢失,因为很多自带商城的卡卷功能都与OpenID相关。账号迁移后,粉丝的OpenID会发生变化。迁移成功后,粉丝的OpenID以目标账号(即新公众号)对应的OpenID为准。但开发者可以通过开发接口转换OpenID,具体开发文档可参考以下信息:提供一个OpenID转换的API接口,当帐号迁移后,可以通过该接口:1
微信小程序获取用户unionId
微信小程序中的unionId是用于跨平台识别同一用户的关键标识,对于同一微信开放平台下的App、公众号和小程序,unionId是唯一的。若用户已关注公众号或在关联应用中登录过,小程序可通过wx.login直接获取到unionId,无需再次授权。然而,当用户未进行上述操作时,wx.login将无法获取到unionId,此时就需要借助wx.getUserInfo接口获取用户的加密数据encryptedData和iv,再与code一起传递给后端解密,从而得到openid和unionId。在实际项目中,处理两种情况的思路是:1. 首先尝试wx.login获取code,若后端返回有unionId,直接使用;若无unionId,则调用wx.getUserInfo获取加密数据,随后传递给后端解密。2. 或者,前端直接调用wx.login和getUserInfo,后端接收到code后,先尝试获取unionId,若为空,再使用加密数据和session_key进行解密
微信小程序中的的登录、签名、校验机制
无论是PC端Web网站、桌面应用还是移动端APP、小程序,登录方式虽然在界面上统一涉及注册、登录、退出,但在具体实现和优化上各有侧重。本文将深入探讨登录功能的交互设计、登录方式选择、身份标识获取、签名校验及OpenId和UnionId的区别。登录方式主要分为三种:1. 基于账号密码的传统登录方式。虽然较为传统,但因其便捷性,仍被广泛使用。随着隐私保护意识的提升,这类方式逐渐被辅助登录方式取代。2. 手机号+验证码登录。这是目前应用最广泛的登录方式,尤其适用于新用户或不确定在平台已有注册情况的用户,简化了注册流程,提高了用户体验。3. 第三方平台授权登录。如微信、支付宝、Github等,通过授权登录,不仅能减少注册环节,还能获取用户昵称、头像等信息,方便用户快速登录。然而,这种依赖性也可能限制应用的独立性。对于微信小程序,第三方平台授权登录成为首选,尤其是考虑到微信提供的账号信息获取机制。获取微信手机号的流程涉及一系列步骤,涉及OAuth
微信小程序如何判断是否已关注公众号
微信小程序如何判断是否已关注公众号?登录小程序后, 通过用户登录的unionid查表判断是否已关注。1.微信公众号和小程序都绑定到微信开放平台, 所以会有一个共同的unionid, 每次用户登录都会返回一个unionid 2.获取所有公众号已关注用户的信息 : 通过微信接口获取到一个已关注的用户列表(公众号的openid和unionid), 保存到数据库内(保存openid, unionid)3.通过监听关注/取关事件(用户关注时, 微信会给我们发送一条消息), 来更新表的内容(关注->增加, 取消关注->删除) 4.登录小程序后, 通过用户登录的unionid查表判断是否已关注。