DAY XX OAuth

Day XX OAuth2

OAuth 的概念

OAuth 是一个协议。具体的实现有JAVA Python 等方法。

其作用是用来授权某个操作。拿到这个授权之后可以有操作的权限。

OAuth 与 密码的区别

OAuth 是短期的,自动失效;

OAuth 可以撤销;

OAuth 有权限范围

OAuth 的结构

OAuth 分为

Resource Owner

资源拥有者,一般指用户

Client

需要请求资源的服务

Authorization Server

能够纷发 token 的服务

Resource Server

拥有资源的服务

OAuth 授权模式

授权码模式

使用授权码换令牌。用户申请授权码。将授权码给client,client 用授权码换令牌。client再用令牌进行操作。

简化模式

用户直接得到令牌,将令牌给client

密码模式

使用密码登录客户端。客户端从 OAuth 中拿到 token

客户端模式

client自己能够产生 token

OAuth 的优点

为什么使用 OAuth

对于单体结构:

使用 Cookie-session 方法。

如果所有功能都在一个服务上,可以用 cookie-session 进行。

分布式架构:

需要访问多个服务。所以 session 需要共享。此时可用 redis 进行 session 共享

或者使用 token

cookie session 与 token 的区别

  1. cookie 不能跨域,对前后端分离的架构很困难

  2. 移动端没有 cookie

  3. token 基于 header 传递,解决了部分 CSRF 攻击

  4. token 比 sessionID 大,客户端会存在 Local storage 中,可被 JS 直接读取

在 Spring 项目中,使用 Spring Security OAuth 实现 OAuth 协议

T31 授权流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值