cookie中获取token 和签名数据

/**
* 从cookie中获取token 和签名数据
* @param cookies 请求中的cookie信息
* @return cookie中对应的参数vo
*/
public static CookieValueVo getTokenFromCookie(Cookie[] cookies) {
CookieValueVo cookieValueVo=new CookieValueVo();
//从cookie中取token和sign
for (Cookie cookie : cookies) {
switch (cookie.getName()) {
case CommonConstants.COOKIE_KEY_FOR_TOKEN:
cookieValueVo.setToken(cookie.getValue());
break;
case CommonConstants.COOKIE_KEY_FOR_TOKEN_SIGN:
cookieValueVo.setSign(cookie.getValue());
break;
}
}
return cookieValueVo;
}

//使用方法:

public TokenInfoVo getTokenAndValidateFromCookies(Cookie[] cookies) {
TokenInfoVo tokenInfoVo = new TokenInfoVo();
String method = “从cooki中获取token-”;
//1.从cookie中获取token和sign数据
CookieValueVo cookieValueVo = CookieUtil.getTokenFromCookie(cookies);
//token 或者sign数据为空
if (!StringUtils.paramIsIntact(cookieValueVo.getToken(), cookieValueVo.getSign())) {
logger.warn("{}验证失败,token或者sign数据为空,token:{},sign:{}", method, cookieValueVo.getToken(), cookieValueVo.getSign());
tokenInfoVo.setCode(ReturnCodeEnum.ERROR.name());
tokenInfoVo.setMsg(ReturnCodeEnum.ERROR.getReturnMsg());
return tokenInfoVo;
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Session、CookieToken、JWT都是在Web开发用于管理用户身份认证和会话管理的工具。 1. Session:Session指的是服务器端保存的用户信息。当用户登录成功后,服务器会创建一个session,为该用户分配一个session ID,并将该ID保存到cookie,发送给客户端。客户端浏览器保存了这个cookie,以后每次请求都会带上这个cookie,服务器通过这个cookie就可以识别出用户身份,从而进行相应的操作。Session机制存在一定的风险,比如会话劫持、会话固定等问题,需要注意安全性。 2. CookieCookie是一种客户端保存用户信息的机制,它是由服务器在响应HTTP请求时通过Set-Cookie头部字段发给客户端浏览器的一小段文本信息。浏览器将这些信息保存在客户端,以后每次向服务器发送请求时都会自动带上这些cookie,从而实现身份认证和会话管理。但是Cookie也存在一些安全问题,比如会话劫持、跨站脚本攻击等问题。 3. TokenToken是一种用户身份认证和授权的机制,通常由服务器生成,以便在客户端和服务端之间进行身份认证和授权。客户端在登录成功后,服务器会为该用户生成一个Token,并将Token发送给客户端浏览器。客户端在之后的请求需要携带该Token,服务器验证Token的有效性后,就可以识别出用户身份,并进行相应的操作。Token相比Session和Cookie,具有更高的安全性和可扩展性。 4. JWT:JWT是一种基于Token的身份认证和授权机制。JWT包含三部分,分别是头部、载荷和签名。头部包含加密算法和类型等信息;载荷包含用户的身份信息和相关的元数据等信息;签名则是对头部和载荷进行签名生成的一段密文,用于验证Token的有效性。JWT具有无状态、可扩展、跨域等特点,被广泛用于Web开发的用户身份认证和授权。 ### 回答2: Session、CookieToken和JWT都是常见的身份验证和会话管理方法。下面我会分别介绍它们。 Session:Session是服务器端记录用户状态的一种机制。当用户通过用户名和密码登录后,服务器会为该用户创建一个唯一的Session。之后,用户再发送请求时,服务器会根据Session来识别用户并获取用户的状态信息。 CookieCookie是一种在客户端存储的小型文本文件。在用户通过用户名和密码登录成功后,服务器可以将一个包含Session信息的Cookie发送给客户端,客户端会将该Cookie保存下来。之后,客户端发送请求时,会自动附带上该Cookie,用于向服务器证明用户的身份。 TokenToken是一种代表用户身份的令牌。与Cookie不同,Token是在客户端保存的,并且不需要服务器端存储用户状态。当用户登录成功后,服务器会生成一个Token并发送给客户端,客户端将其保存起来。之后,客户端发送请求时,会将Token作为请求头信息的一部分发送给服务器,服务器根据Token验证用户身份。 JWT:JWT(JSON Web Token)是一种基于JSON的开放标准,用于在各方之间安全传输信息。它由三部分组成:Header、Payload和Signature。其,Header用于描述JWT的元数据,Payload用于存储实际传输的数据,Signature用于验证JWT的合法性。在使用JWT进行身份验证时,服务器会生成一个JWT并发送给客户端,客户端将其保存起来。之后,客户端发送请求时,会将JWT作为请求头信息的一部分发送给服务器,服务器根据JWT验证用户身份的合法性。 总结:Session、CookieToken和JWT都是常用于身份验证和会话管理的方法,它们各有优劣和适用场景。Session和Cookie依赖于服务器端存储用户状态,而Token和JWT则可以减轻服务器的负担,并且适用于分布式系统。其,JWT由于其自包含性和可扩展性,在分布式系统和前后端分离的架构得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值