oauth 2.0 的优点是什么?

eno_zeng 2020-04-08 10:03:53
公司项目使用了 oauth 2 的方式, 我一直想不明白, 为什么要使用这种模式

简单介绍一下 oauth 2:

普通的用户登录会返回一个 token 用于后面所有需要权限的请求验证, 每次请求服务器都会携带登录时获取的 token, 告诉服务器谁在请求, 是否可以请求. <br>而oauth2 登录会返回两个 token, 一个 access token, 这个相当于上面说的 token, 用于登录验证用户身份, 另一个是 refresh token, 顾名思义就是用来属性 token 的. 当 access token 失效时, 就会是用 refresh token 请求服务器获取新的 token, 保持用户的登录状态.

疑问

1. 双 token 更安全了吗?

如果为了安全性考虑, 将 access token 设置为有效期更短的 token, 防止 token 外泄, 而 refresh token 设置为有效期更长的 token, 用于保持合适时长的用户登录状态, 对 access token 来说更短的有效期确实更安全, 但refresh token 必须要保持更长的有效期行, 所以 refresh token 的安全性和 oauth 1 的token 安全性应该是一样的. 既然 refresh token 的安全性和以前 oauth 1 只有一个 token 的时候是一样的, 而 refresh token 可以用于获取 access token, 如果 refresh token 外泄, 那么 access token 安全性就无从保证, 所以我没感觉比 oauth 1 只有一个token的模式更安全.

2. 请求增加了

使用了 refresh token, 代表要多出请求来 重新获取 token, 这么一来请求一定比之前更多了. 这样不仅开发和使用成本更高了, 而且苛刻一点的讲, 请求的增加不是导致系统更不安全了吗?

PS: 我是一个前端, 在使用这个模式的实际开发过程中, 这种模式导致了前端很多处理更加麻烦了, 所以我一直在思考使用这种模式的优势在哪? 希望能有大佬来解答一下我的疑惑, 或者大家能相互讨论一下.
...全文
给本帖投票
389 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

28

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论区
社区管理员
  • 其他技术专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部