鉴权Cookies、授权session、token

2 鉴权、授权

区别:一个存在浏览器,一个存在服务器,session存到服务端当中

问1:http协议是一个典型的无状态协议,无记忆,那第一次登录下次是不是还要登录一次?

ANS:不需要

        因为Cookies 和session作用:是让浏览器变得有状态,记住用户是谁,从而追踪用户

问2:浏览器登录了某些网站(优酷视频),下次访问为什么不要登录?

ANS:授权:相当于给一个通行证

           鉴权:鉴定是否有权限访问(判断有没有通行证)

 2.1 Cookies 和session

流程: 

        用户发送登录请求(login页面,user=xiaoyi  password=123456),一般会加密,校验通过,服务器用如字典存储所有登陆过的账户 user = ["xiaoyi" ,"xiaoer"],登录的账户存储起来就是session

        响应信息中会有特殊这段set-cookie:sessionid = ‘xiaoyi’:放到响应头信息中,不一定为sessionid可以自定义,表示是谁发送给我,我把谁存储起来了,再把用户返回给你,会存到浏览器cookie,sessionid = ‘xiaoyi’:  sessionid会和域名绑定一起

        cookie不一定和session绑定

Cookie

        Cookie 是在 HTTP 协议下,服务器或脚本可以维护用户信息的一种方式。Cookie 是由Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户访问到服务器,都会带上该服务器的cookie信息。
        一般 Cookie 都是有效期的, Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除

Session

        Session将数据存储在服务器中,服务器会为每一个用户创建一条session,用户访问服务器的时候需要拿着sessionid去表明自己的身份。
        Session的实现是基于Cookie,Session需要借助于Cookie来存储sessionlD。

 2.2 token

 

2.2.1什么是token?

        token是“令牌”、“门票”,是服务端生成的一串字符串,作为客户端进行请求的一个标识,凭证

这里有一份接口文档:
http://www.baidu.com/docs/

访问其中一个接口:

GET http://www.baidu.com/interfaces/

看不到里面的数据。会出现错误信息,缺少用户信息。没有权限
带上 JWT token 就可以得到里面的数据。
{
"token":
"ey10exAi0i]KV1QiLcIhbGci0iJIUzIINi19.eyJ1c2VyX27kIj0xLCJ1C2VybmFtZSI6ImX7bW9UMSISImV4CCI6MTU5MDYONzYxMCwizw1hawwioiisZW1vbjEwMEBxcs5jb20ifQ.GTf7QfYx6swx63E6-TIrh3AIVvDWW8cKmFwhlPilshAk".}
"user_id":1,
"username": "lemon1"

postman登录之后再次访问网址,不会主动登录,其他接口需要加入token

token的数据包含许多信息:你是谁,包含密码,token失效时间,加密方式等等

 2.2.2 token和session的区别

        cookie:再次请求后端会主动带上cookie,自动完成校验操作,需要去服务器查询,cookie是和域名绑定的关系,那该cookie去访问其他网址,是不能的

        tooken:访问接口,基于用户名生成token一般不会存储到其本地(服务器),第二次访问时需要手动的传入token,其不用本地存储不需要校验,这样服务器不需要消耗存储资源和查询资源,通过解密算法进行解密用户信息就可以直接拿到,消耗的是计算资源 ,速度会快些,当服务器有多个域名,带上token是可以访问其他的域名(如公众号、小程序)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值