首页 >> 经验问答 >

问openid 的解说 身份标识基础讲解

2026-11-10 06:06:57

答

核心结论 openid 是开放身份标识,简单理解就是第三方平台给用户分配的一串唯一编号,主要用来在某个应用或者公众号小程序里面识别这个用户,它不是用户的账号密码,也不是手机号这类个人隐私明文信息,同一个用户在不同的应用下拿到的 openid 是不一样的,它的设计目的就是让业务系统不用保存用户原始身份信息,依靠这个编号识别用户,同时保护用户原始身份不直接暴露,很多人会把 openid 和 unionid 弄混,unionid 是同一个主体下多个应用共享的用户标识,openid 只绑定单个应用,这是最核心的区别,在微信生态里面使用最广泛,其他开放平台也有自己版本的 openid 机制,原理基本一致。

openid 核心特点

1 唯一性,同一个用户在同一个应用内,openid 固定不变,不会因为用户换设备登录就改变。

2 隔离性,用户在应用 A 的 openid,和应用 B 的 openid 完全不同,跨应用不能直接通用。

3 不可逆,正常情况下不能通过 openid 反推出用户手机号微信昵称这类原始信息。

4 非敏感凭证,它属于识别编号,本身不能直接用来登录账号,不能单独作为授权令牌使用。

openid 工作流程

第一步 用户通过授权,在应用里面完成登录,一般是扫码或者小程序授权。

第二步 应用后端拿着授权 code,调用开放平台接口,向平台服务器请求用户身份信息。

第三步 开放平台校验 code 有效性,校验通过之后,返回对应的 openid 给应用后端。

第四步 业务系统把 openid 和自己业务账号做绑定,后续业务请求直接携带或者后台查询 openid 识别用户。

第五步 后续每次用户访问,系统依靠 openid 判断这是哪一个用户,不需要重复走完整授权流程。

openid 和 unionid 对比表

对比项目openidunionid
绑定范围单个应用同一开放主体下全部应用
跨应用识别不支持支持
生成规则平台按应用单独生成平台按主体统一生成
适用场景单小程序单公众号业务同主体多应用统一用户体系

常见使用场景

单公众号消息推送,用 openid 定位接收消息的用户。

小程序登录鉴权,后端保存 openid 建立用户档案。

第三方业务统计,依靠 openid 区分独立访问用户。

会员绑定,把业务会员账号和 openid 建立关联映射。

补充注意点

openid 是服务端返回的数据,不建议直接暴露在前端页面,前端如果拿到 openid,存在被篡改伪造的风险,正式业务开发必须由后端服务器完成 code 换取 openid 的操作。如果应用注销或者平台规则调整,openid 有可能发生变更,业务设计的时候要预留兼容方案。openid 只做身份识别,权限校验仍然需要业务系统自己实现,不能认为有 openid 就代表用户拥有全部权限。

【常见问题】

问题 1 openid 可以直接反查用户手机号吗

回答 1 openid 本身不能直接反查用户手机号,openid 只是编号,如果需要手机号必须单独走手机号授权接口,不能依靠 openid 逆向解析。

问题 2 同一个微信用户两个小程序 openid 一样吗

回答 2 同一个微信用户在两个不同小程序里面 openid 不一样,openid 是按单个应用隔离生成,跨小程序不能共用同一个 openid。

问题 3 openid 会随着用户卸载重装改变吗

回答 3 用户卸载重装应用之后 openid 一般不会改变,只要还是同一个用户身份,在该应用下 openid 保持固定。

问题 4 openid 和 access_token 有什么区别

回答 4 openid 是用户身份编号,access_token 是接口调用凭证,access_token 用来调用平台接口,openid 用来识别具体用户,二者作用不一样。

【免责申明】

本文为技术原理科普讲解,不同开放平台的 openid 生成规则接口参数和变更策略存在差异,实际开发请以对应平台官方开发文档为准,本文不构成开发方案或者法律合规建议。

 

相关阅读

标签: openid的解说
最新文章