java中token原理及生成使用机制

本文介绍了Java中三种常见的认证机制:HTTP Basic Auth、Cookie Auth和Token Auth,详细阐述了它们的工作原理、优缺点。Token Auth,特别是JWT(JSON Web Tokens),因其无状态性和易于跨语言支持等优点在现代Web应用中广泛应用。在使用Token时,应注意安全性问题,如保护好secret私钥并避免在payload中存放敏感信息。
摘要由CSDN通过智能技术生成

常用认证机制介绍

1、HTTP Basic Auth

HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth

这种认证方法的优点是简单,容易理解。

缺点有:

不安全:认证身份信息用明文传送,因此需结合 https 使用。

效率低:服务端处理请求时,每次都需要验证身份信息,如用户名和密码。

2、Cookie Auth

Cookie认证机制就是为一次请求认证在服务端创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象;通过客户端带上来Cookie对象来与服务器端的session对象匹配来实现状态管理的。

cookie指的就是浏览器里面能永久存储数据的一种数据存储功能。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

其交互过程如下:

客户端在登录页面输入身份信息,如用户名/密码。

服务端验证身份信息,通过后生成一个 Session 对象,保存到服务端,并将 SessionID 值以 Cookie 形式返回给客户端。

客户端将接收到的 SessionID 保存到 Cookie 中,并且之后每次请求都在请求头中携带 SessionID Cookie。

服务端从请求的 Cookie 中获取 SessionID,并查询其对应的 Session 对象,从而获得身份信息。

客户端退出本次会话后,客户端删除 SessionID 的 Cookie,服务端删除 Session 对象。

如果客户端之后要重新登录,需重新生成 Session 对象和 SessionID。

优点:

较安全:客户端每次请求时

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值