权限——http鉴权方式

常用的http鉴权方式有以下四种

  1. http basic authentication
  2. session-cookie
  3. 使用token进行签名的鉴权
  4. OAuth(开发授权)

一、http basic authentication

浏览器把用户名和密码进行base64加密后,放在请求头中,由服务器进行解密和验证。验证通过后发送请求的资源。浏览器的每次请求都会携带加密后的用户名和密码,服务器每次收到请求后都会解密和验证。由于base64加密方式可逆,所以安全性不高。

二、session-cookie

浏览器请求时先在服务器创建session,服务器保存session并为每个session生成唯一标志字符串即session id(sid),将sid放在响应头中返回给浏览器。浏览器将sid存储在cookie中,以后每次请求都带着sid,服务器解析请求获取sid,根据sid看能否找到对应的session,如果找到说明请求合法。

三、token验证

客户端先用用户名和密码登录登录,服务器验证用户名和密码通过后,给客户端发送一个token。客户端保存好token后,以后每次请求的数据,都携带token信息。服务器验证token信息是否合法。

token验证和session-cookie的不同在于,session id只是一个唯一标志字符串,服务器根据sid查找用户登录信息,而token本身就是用户登录成功的信息。session依赖与浏览器客户端,需要把sid保存在浏览器的cookie中。

token验证的一种常用方案是JWT(Json Web Token),即把请求url、请求参数与token进行一种不可逆的加密,生成签名并发送给服务器。服务器进行相同的加密,如果签名匹配,证明请求方的token是授权的。

为了应对这种请求链接被别人拿到从而进行非法请求,可以在参数中加入时间戳,以便实现请求的唯一性。个人理解服务器会限制带时间戳的请求链接只会在几秒中内有效,超时后即实效。或者服务器会记录请求的时间戳,如果同一时间戳出现第二次,那么就拒绝请求。

四、开发授权

这种方式是使用第三方授权的信息进行登录,比如使用qq、微信等授权登录网站。

参考文献

https://blog.csdn.net/wang839305939/article/details/78713124

https://www.cnblogs.com/codelir/p/5327462.html

https://recomm.cnblogs.com/blogpost/11165757

https://blog.csdn.net/qq_34659777/article/details/105036229

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值