1. 快递员场景问题:
如何让快递员通过门禁系统进入小区送货?
①. 把自己的密码告诉快递员 => 不太合适
a. 拥有和我同样的权限.
b. 我想取消他进入小区的权力 => 自己的密码需要改,还得通知其他的快递员.
②. 让快递员能够自由进入小区
a. 不必知道小区居民的密码.
b. 唯一权限就是送货,其他地方需要密码的场合,他都没有权限.
(1). 授权机制的设计:
①. 门禁增加一个按钮"获取授权",快递员需要首先按这个按钮,去申请授权.
②. 按下按钮后,屋主的手机会跳出对话框"有人正在要求授权".
a. 系统会显示快递员的姓名、工号和所属的快递公司.
③. 确认请求属实,点击按钮告诉门禁系统,同意给予他进入小区的授权.
④. 门禁系统得到确认后,向快递员显示一个进入小区的令牌(access token).
a. 类似密码的一串数字,只在短期内(如7天)有效.
⑤. 快递员向门禁系统输入令牌,进入小区.
⑥. 疑问:为什么不远程为快递员开门,而要为他单独生成一个令牌?
a. 因为快递员可能每天都会来送货,第二天他还可以复用这个令牌.
b. 有的小区有多重门禁,快递员可以使用同一个令牌通过它们.
2. 互联网场景:
①. 小区:
a. 储存用户数据的网络服务.
b. 如:微信储存了我的好友信息,获取这些信息,必须经过微信的"门禁系统".
②. 快递员/快递公司:
a. 第三方应用,想要穿过门禁系统,进入小区.
③. 业主:
a. 用户本人,同意授权第三方应用进入小区,获取我的数据.
3. OAuth:
①. OAuth是一种授权机制.
a. 数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据.
b. 系统产生一个短期的进入令牌(token),来代替密码,供第三方应用使用.
②. OAuth 2.0是目前最流行的授权机制,用来授权第三方应用,获取用户数据.
标签:令牌,门禁系统,快递,小区,授权,OAuth,原理
From: https://blog.51cto.com/u_16237074/8571870