三方登录几个概念的理解

1)外部标识
用来使用用户身份的标志,可以是用户名,手机号,邮箱等,每一个外部标识一定和一个内部标识相关联用以确定一个用户。
需要注意的是,外部标识可能改变,例如小明12年用的是手机号A,17年用的是手机号B,在APP内更改了登录的手机号,就完成了外部标识的改变。
所以,外部标识的作用有两个
1. 让用户通过自己熟知且占有的外部标识来登录产品
2. 可以通过校验外部标识来实现找回或转移数据资产(用户注册帐号后使用产品过程中产生的所有数据,例如在微信,数据资产是你的好友,历史聊天记录,所发的朋友圈;而在游戏中是你的游戏角色,拥有的装备,好友等)

2)内部标识
即产品中用于标识用户唯一性的标志,例如user_id,必须有,不可更改且唯一,用户一般接触不到内部标识。
当一个内部标识建立后,用户所有的数据资产都会绑定到这个内部标识上。

3)user_id
一个常用的内部标识,类似你的18位身份证ID

4)app_id
用于区别不同APP的ID,具有唯一性。

5)open_id
第三方平台为了用户信息的安全,一般不会直接将用户的内部标识给到其他产品,而是选择了给一个外部标识,这个open_id就是微信给各个APP用以区分微信用户身份的外部标识
需要注意的是,即使是同一个用户,微信给不同的APP的open_id也是不同的,这会导致一个问题。
例如我有两款产品,一款美团,一款美团外卖。
对微信而言,这是两个app_id,所以当用户授权美团使用微信信息后,微信给的是open_id_1,用户再来到美团外卖公众号,这时候还要再授权一次,微信给的是open_id_2。
但实际上在美团的帐号体系中,这都是同一个用户,却绑定了两个open_id,可能导致用户注册了两个帐号,数据不会互通,这显然是有问题的。
如何解决?往下看

6)union_id
为了解决上面的问题,union_id诞生了。
不同的产品的可以使用同一个union_id来确认用户的身份。
对于使用同一套用户数据的不同产品,可以向微信申请union_id,当A产品获得了用户授权后,拿到该用户的union_id,这时候再使用B产品再进行授权后,发现这是同一个union_id,直接登录之前的帐户,避免了同个微信用户注册了两个帐号数据不同步的问题。

7)access_token
可以理解为通行证,有了这个通行证,就能获取到第三方平台指定用户的有限信息。

打赏