栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

cookie、session、token 的执行原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cookie、session、token 的执行原理

cookie

cookie 是身份证的一种手段

  1. cookie在服务器端生成的(意味着浏览器第一次访问服务器的时候是没有cookie值的)
  2. 服务器端开始生成cookie:
res.cookie('username', 'dfg', {

    maxAge: 1000 * 60 * 60

})
  1. 设置好了之后 会自动的向浏览器返回cookie值
  2. 浏览器收到服务器端的cookie值 会自动保存在cookie里面
  3. 当浏览器访问服务器的时候会默认的携带cookie值 放在请求头上发给服务器
  4. 服务器端获取浏览器的cookies值 做验证 如果验证成功,则说明用户曾经来过, 不成功说明第一次来

​ ==缺点:==安全性很差

总结:

cookie的执行原理:当客户端访问服务器的时候(服务运用了cookie),

则服务器会生成一份cookie传输给客户端,

客户端会自动把cookie保存起来;以后客户端每次访问服务器,都会自动的携带着这份cookie。

session

1、客户端提交登陆请求,把账号密码提交到服务器验证;

2、服务器验证通过,在服务器开辟内存记录人的信息,生成cookie字符串,通过响应的形式发送给客户端;

3、客户端收到cookie,保存起来;

4、客户端再次发起请求,通过请求头把所有可用的cookie发送给服务器端;

5、服务器端收到cookie后从内存中查找对应信息,找到则证明用户验证成功,针对用户生成特定页面响应给客户端;

6、注意:敏感重要的信息是存在服务器的内存中,不会出现在cookie中;

优点:

​ 安全

缺点:

​ 占内存、服务器端不可以更换资源

token
  1. 基于Token身份认证的流程,在服务端不需要存储用户的登录记录,具体流程如下:

  2. 客户端使用用户名、密码发起登录请求

  3. 服务端收到请求后,验证用户名、密码(通过查询数据库)

  4. 验证成功后,服务端会生成一个Token,再把这个Token返回给客户端

  5. 客户端收到Token后会存储到Cookie或者Local Storage

  6. 客户端每次向服务端请求资源的时候需要带着服务端签发的Token

  7. 服务端收到请求后,会验证客户端请求头中的Token,验证通过后,返回数据给客户端

    1.下载express-jwt 和 jsonwebtoken
    2.express-jwt 将jwt字符串解析还原成json对象
    3.jsonwebtoken生成jwt字符串
        const jwt = require('jsonwebtoken')
        const expressJWT = require('express-jwt')
    4.定义秘钥:
        const secretKey = 'itheima'
    5. const tokenstr = jwt.sign({username:req.body.username},secretKey,{expiresIn:'30s'})
    6.发送给客户端:
        res.send({
            status:200,
            message:'登录成功',
            token:tokenstr
        })
    7.解密以定义好的秘钥解密
    app.use(expressJWT({secret:secretKey}).unless({path:[/^/api//]}))
    
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/919381.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号