最近在看OAuth2.0的相关知识的时候, 发现 授权码模式 进行授权的时候, 自己有几个不清楚的点:
为什么要向 认证服务器 去申请两次, 第一次是code, 第二次在拿着code去申请令牌(access_token) ?网上看了一些资料基本都说是为了安全, 有的说 “第一次的url的请求和授权服务器code的返回都是在浏览器中进行的, code是可见的, 所以不安全, 而第二次请求的access_token不是在浏览器中的所以安全” 我总觉得抓包还是都抓的到的吧, 即使是HTTPS, 也不见得能保护的了返回的access_token以及其他参数吧, 所以终究还是没能明白这两次申请的意义?
第一次申请code的时候提供了一个回调url, 看资料说是用来接收 认证服务器 返回给第三方的code的, 然后第二次申请的时候还是同一个回调url 也是不明白用意何在?
阮一峰的资料中说第一次申请code的时候, 回调url是可选项, 不明白为什么还可以不填,不填的话code怎么给第三方啊?
3 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
因为 access_token
跟 code
不是在同一个地方获取的啊。
这么说:code
的获取是在页面上的,因为是用户在你网站向认证服务器上发起的请求。access_token
是你服务器向认证服务器发起的请求。你在浏览器端又怎么能抓到网站服务器传向认证服务器的包呢?
杨__羊羊
TA贡献1943条经验 获得超7个赞
这点想复杂了
那两次申请的回调地址一样是什么意思? 第一次的回调不是认证服务器返回给客户端code时, 客户端用来接收code的地址么, 第二次回调不应该是接收token的地址么, 怎么是一样的
茅侃侃
TA贡献1842条经验 获得超21个赞
在你获取code 的时候,code是传到你的回调地址上的,一般是get方式,确认是你本人在操作,通过code去获取一个门票,accesstoken,在你之后发起请求的时候都要带这个门票,是为了安全。
- 3 回答
- 0 关注
- 598 浏览
添加回答
举报
0/150
提交
取消