【框架学习】网关与授权 - hippowc/hippowc.github.io GitHub Wiki
OAuth
新浪微博就是你的家。偶尔你会想让一些人(第三方应用)去你的家里帮你做一些事,或取点东西。你可以复制一把钥匙(用户名和密码)给他们,但这里有三个问题:
- 别人拿了钥匙后可以去所有的房间
- 别人拿到你的钥匙后也许会不小心丢到,甚至故意送到它人手里。这样你都不知到谁有你家钥匙。
- 过一段时间你也许会想要回自己的钥匙,但别人不还怎么办?
OAuth 是高级钥匙:
- 你可以配置不同权限的钥匙。有些只能进大厅(读取你的微博流)。有些钥匙可以进储藏柜(读取你的相片)
- 钥匙上带着指纹验证的(指纹 = appkey)。 收到钥匙的人只能自己用,不能转让
- 你可以远程废除之前发出的钥匙
理解OAuth的使用流程
首先有四个角色:用户,三方应用,本应用,授权服务器
用户访问三方应用,三方应用需要到本应用去拿用户数据,但是三方应用获取本应用的用户数据需要授权,流程如下:
- 用户访问三方应用某个功能,三方应用发现获取这个用户数据需要授权
- 三方应用将用户引导到授权服务器地址,并设置回调地址
- 用户访问授权服务器,完成登陆和确认授权,授权服务器返回临时令牌(code)跳到回调地址
- 三方应用通过code调用接口获取accesstoken,accesstoken有效期10小时(我们定的),访问其他隐私数据时都需要携带accesstoken
其他问题
为什么会有token,直接获取accesstoken有啥问题?
accesstoken和appkey是绑定的,而不是随意获取的