返回知识库

微信小程序 · 账号与数据

微信登录与 openidwx.login & openid

小程序不用账号密码:登录换来的 openid 是这个人在这个小程序里的身份证;想跨小程序、公众号认出同一个人,要把它们绑到同一个开放平台拿 unionid。

让会员表认出:小程序里的小林和公众号里的小林是同一个人

从三个登录入口里点「微信登录」,花店后端的会员表会就地新增、命中或合并一行;流程条显示 code 怎么换成 openid。

知识点:面板上刚看到的几件事

只做命名,不再重复操作。

  • openid:一个人在「这一个」小程序里的身份证。同一入口反复登录,openid 不变;换一个小程序或公众号,就是另一个 openid。
  • code 只能用一次:前端登录拿到的 code 交给服务器换身份,用过就作废;报错里看到 invalid code,先查是不是重复用了。
  • unionid:要把几个应用绑到同一个微信开放平台账号下才有;同一个人在这些应用里 unionid 相同,跨应用会员靠它合并。别的公司(另一个开放平台)永远对不上。
  • session_key 只留在服务器,不能出现在小程序前端或接口返回里。
  • 头像昵称不会随登录自动拿到:要放一个让用户自己填写头像和昵称的入口。

什么时候需要 unionid

先数你有几个微信应用要共用会员。

  • 只有一个小程序:用 openid 认人就够,不用折腾开放平台。
  • 同时有小程序 + 公众号(或多个小程序、App 微信登录)要通用积分、订单:一开始就把它们绑到同一个开放平台,会员表存 unionid。
  • 已经上线、表里全是 openid:先补绑开放平台,再让用户下次登录时补存 unionid,按 unionid 合并,别手工猜。

怎么跟 AI 说、怎么验收

把「认人的范围」说清楚,比说「做个微信登录」有用得多。

  • 说清范围:「只有这一个小程序,用 openid 建会员」或「小程序和公众号要通用会员,按 unionid 合并」。
  • 点名禁区:「session_key 只存服务器,不返回给前端」「头像昵称让用户自己填」。
  • 验收:同一个微信号在两个入口各登录一次,看会员表是 1 条还是 2 条;在接口返回里搜一下有没有 session_key。

正反例:给花店加会员积分

目标一样,只差在有没有说清跨应用认人。

快速自测

花店又开了第二个小程序「花店礼品卡」,想让礼品卡余额和原来的会员是同一个账户。AI 说「直接用 openid 关联就行」。你怎么判断?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。