终于有人把前端鉴权讲明白了

本文详细介绍了前端鉴权的多种方式,包括Session-Cookie认证、Token认证、单点登录以及OAuth2和OIDC。讨论了各种认证方式的来源、流程、优缺点,同时涉及了Cookie的安全问题、Google验证器的2FA双因素认证,为前端身份验证提供了全面的理解。
摘要由CSDN通过智能技术生成

什么是鉴权

鉴权也叫身份认证,指验证用户是否有系统的访问权限。就很像我们经常乘坐动车的票据(对应的标识,一定的时间范围)。

认证方式

接下来介绍几种我们工作中通常用到的认证方式。

Session-Cookie 认证

利用服务端的 Session(会话)和浏览器(客户端)的 Cookie 来实现的前后端通信认证模式。

来源

由于 HTTP 请求时是无状态的,服务端正常情况下无法得知请求发送者的身份。这个时候如果我们要记录状态,就需要在服务端创建会话,将相同客户端的请求都维护在各自的会话记录中,每当请求到达服务端时,先校验请求中的用户标识是否存在于 Session 中,如果有则表示已经认证成功,否则表示认证失败。

流程

file

实践

boss(我们的一个产品) 这边 Session ID 存在数据库里面,在 Memcached 里面做缓存。客户端每次调用接口的时候会通过 response headers 里面的 Set-Cookie 更新过期时间(boss 这边设置的是 6 个小时),这样做的作用是防止你在做一些复杂操作的时候,cookie 突然过期。

⚠️整个过程是比较重的,因为每次的接口调用都得更新过期时间。

优缺点

优点:
  • 简单易用,浏览器会自动带上
缺点:
  • 脱离浏览器没法用,比如原生应用

关于 Cookie 的安全问题

Cookie 属性:

file

提高安全性的办法

  • Expires/Max-Age 设置合理过期时间

  • HttpOnly 设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值