写在前面
这篇文章主要模拟的是最安全最常用的授权许可方式: 授权码(Authorization Code),其他三种种自行百度奥.
三个角色:
你 (就是你,理解吧?),
网站 (csdn等等各种网站,这些网站已经在服务提供方那里做了登记,比如csdn这个网站想要吸引qq用户来壮大自己(接入qq第三方登录),它就要去qq互联注册一个应用拿到appid和appsecret,填写自己的回调地址,回调地址用于网站和服务提供方的通讯),
服务提供方 (腾讯 百度等)
情景对话
1:你今天心血来潮,想要自己写博客提升自己,去网上百度了一下,来到了csdn.
2:你点了 “写博客”, 说: **的,还得登录啊.(csdn说:废话,你 ****的不在我这登记,我 ****的咋保存你写的博客)
3:你动了动你聪明的脑壳想了想,我 ****的没有账号怎么 ****的登录啊,然后眼尖的你发现了登录下面 有一个 : QQ登录(在这里,csdn把他的appid等信息按照腾讯的格式拼接成了一个url,腾讯会查看这个appid确认csdn有没有这里登记),你点了下去.
4: (csdn引导你跳转到了授权页面)腾讯对你说, 主人啊,我和小C(csdn)有合作,他现在要获取你的信息来保存你的博客,你同意不?你要是同意了,我给人家说一声.
5:你骂骂咧咧的说:当然 ****的同意啊,要不然我 ****的怎么写博客?,然后输入了账号密码,点击了授权.
6:腾讯验证通过后确定是你本人,对csdn的回调地址说:我家主人同意了,但我并不知道你的真实身份, 我只知道你的appid,如果你能表明你的身份,我将会给予你一个临时令牌(access_token),在此之前我会给你一个code.你并不用担心code的安全性,它是一次性的,就算被拦截到,没有secret.我是不会发放临时令牌的.
7:csdn服务器:拼接 code secret appid等. 告诉腾讯服务器 我真的是是csdn啊
8: 腾讯验证通过,返回临时令牌access_token.
9:csdn拿到令牌, 换取了你的信息,并完成了登录. 你兴致勃勃的开始写起了博客.