关于微信授权登录open id union id 关注点

根据下面资源整理
关于微信授权登录--
# 微信 openid = hash(uid + app_id) 也就是说,对每个app可以做到用户id唯一


openid 、uid、app_id之间的关系

你可以简单的理解为 openid = hash(uid + app_id) 也就是说,对每个app可以做到用户id唯一,但是这个id又不是通用的,你在其它app上同样的用户,openid会完全不同,反正你无法通过这个id获取用户的任何信息。用户信息是腾讯的命根子,它不会随便给你的。

讨论微信授权登录,我们就不得不关注微信账号体系的两个id:open id 和 union id;

1)、在关注者与公众号产生消息交互后,公众号可获得关注者的open id;

2)、如果开发者有在多个公众号、公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用union id机制来满足上述需求;

union id机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的;

open id 和 union id ,这两个id有什么区别;

1)、open id: 同一个用户,在不同公众号或移动应用下对应有不同open id标识;

2)、 union id:同一个用户,在不同公众号或移动应用下unionID相同;前提是,如若需要做多个公众号以及移动应用账户互通,得到唯一身份标识union id,则需要将多个公众号或移动应用在微信开放平台进行绑定,然后我们才能给拿到union id;

所以,如果某个应用或者服务,有联合登录甚至多个公众应用多账户互通,可以采用union id来进行账户体系的用户识别与合并;即微信平台可以通过union id 来进行基于多个公众号之间的账户体系互通与识别合并;

了解了微信账户体系的两个id之间的关系,微信联合登录是怎么登录的,有几种登录方式;

1)、微信联合登录;也就是我们常用的微信移动端/PC端之间的扫码登录;

在PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;

2)、微信授权登录;微信授权登录有两种;

a)、点击授权登录;

需要登录时,页面跳转到授权页面,也就是我们经常看到的绿色授权页面,用户授权后可从微信拿到open id、union id;

b)、静默授权;

静默授权下,不需要跳转页面让用户确认授权,而是直接授权用户登录;但是需要注意的是,静默授权只能拿到用户的open id和union id,无法拿到用户的微信头像、微信名称等个人信息;

微信作为一个社交的账号体系,其他服务使用其作为授权登录的基础,可能会产生什么问题;

1)、由于微信开放给第三方的信息维度限制,应用通过微信授权登录无法获取到自建账号体系那样齐全的用户个人信息;

2)、由于很多应用都是在公众号中提供授权登录进行服务透出,就会导致平台账号与微信公众号中账户体系不一致;

3)、由于很多应用都需要用户进行绑定手机操作,那么就会由于openid的原因导致用户进行重复绑定;

如何通过微信账户体系来做多应用、多平台之间的账户互通体系;如果某个服务同时分布在多个公众号中,账户体系如何建立;如何做到用户身份唯一识别;

1)、同一用户不同公众号/应用下open id不同,同一用户不同公众号/应用下unionid相同;

2)、建立应用账户体系时,通过union来进行多应用/平台之间的用户账户体系识别与合并;

3)、多应用/平台建立账户体系时,需要做到唯一user id对应唯一union id;

推荐资料
微服务 SpringBoot 2.0(一):优雅入门构建 --itmsbx

你可能感兴趣的:(关于微信授权登录open id union id 关注点)