微信 openid 与 unionid 两个都存还是只存 unionid?

2017-09-14 10:34:48 +08:00
 xoxo419

问: unionid 可以代替 openid 那么 openid 意义何在?

问: 同一个用户会出现不同 openid 的情况, 如果 openid unionid 都要存的话表设计如下可? (考虑到 QQ 微博 微信)

tab_user

id openid type   //openid 存的微信的 unionid 或 QQ 的 openid 微博的 uid 


tab_wx_user

id tab_user_id openid //关联上方的 unionid 及相关用户的 openid 
13073 次点击
所在节点    问与答
11 条回复
pubby
2017-09-14 10:43:48 +08:00
都存,openid 有其他用处,发送消息,微信支付啥的要用到
zeayes
2017-09-14 10:43:54 +08:00
openid 是针对应用唯一的,unionid 是针对企业唯一的。
QQ 也是支持 unionid 的,微博只有 openid。
第三方登录可以存在一张表里面,用类型区别就可以了。
linxl
2017-09-14 10:50:23 +08:00
unionid 是需要关联另一个平台 (忘记叫啥) 才会看到的. 不然你微信网页授权只会拿到 openid.
crayhuang
2017-09-14 10:58:18 +08:00
@linxl 微信开发者平台
crayhuang
2017-09-14 10:58:29 +08:00
@linxl 打错 开放平台
stop9125
2017-09-14 11:00:41 +08:00
unionid 是对企业唯一的,开放平台和公众平台的 openid 不一样。建议存一下
stop9125
2017-09-14 11:01:39 +08:00
有些场合还是只能用 openid,微信就这么蛋疼。
Jealee
2017-09-14 11:02:29 +08:00
unionid 是微信开放平台的。至于作用的话——
对于绑定了同一个开放平台的两个服务号 A 和服务号 B,用户 1 关注 A 和 B 会有不同的 openid,但他们的 unionid 的相同的。
也就是说可以用它来确定多个公众号的用户是否是同一个人。当然可以通过公开信息判断,但并不严谨,因为资料都是可以修改的,雷同也是完全可能的。
当然,其实不用 unionid 也是可以实现这个需求的。方法是,每次用户第一次访问公众号页面,让他自动跳转一个固定的公众号(静默授权,记录 openid ),再跳回来。这样的话不需要通过 unionid 也能知道用户在多个公众号是否为同一人。唯一的缺点就是用户的第一次访问页面需要跳转多次。
xoxo419
2017-09-14 11:27:58 +08:00
@zeayes
@pubby 如果都存的话, 那么是不是就像我上面的表需要两张表, 一张单独来存微信的 openid?

那么我这个 tab_wx_userd 是不是还要增加一个 app_id 的字段把对应的应用 ID 也存下来区分 openid 是属于哪个应用来的?

**原**
```
tab_wx_user

id tab_user_id openid
```
**增加**
```
tab_wx_user

id tab_user_id openid app_id
```
pubby
2017-09-14 12:28:59 +08:00
@xoxo419 怎么存看你自己的设计了。反正根据用户要能查到 openid

根据 openid (和 appid,如果有多个 app 的话)要能查到对应用户
onlyhot
2017-09-14 12:34:56 +08:00
openid 必须存。openid 是针对单个应用。unionid 是用来识别某个客户在同一个开放平台下的多个应用之间是否是同一个客户。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/390588

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX