参考资料:
cookie、localstorage和sessionStorage的区别1
cookie、localstorage和sessionStorage的区别2
cookie、localstorage和sessionStorage的区别3
cookie、localStorage 和 sessionStorage的区别:
- 详细信息可以参照上述相关链接,这里仅对常用到的点进行区别
1.cookie和storage的区别
- cookie是存储在浏览器中,主动参与http传输的技术
- localStorage和SessionStorage同样存储在浏览器中,但是并不主动参与http传输,需要手动添加到http中才行
- 所以,cookie相对较小,localStorage和SessionStorage可以很大
2.localstorage和sessionstorage
-
localstorage是本地存储,只要你的浏览器没有被卸载。这个数据库都是存在的。
sessionstorage是会话存储,
首先第一点,页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
这一点很好理解,只要浏览器 tab 页没有关闭,我们的 sessionStorage 就一直存在,也就是刷新并不会清楚 sessionStorage。
3. cookie、localstorage和sessionstorage的查看
- 以谷歌浏览器为例:F12,进入应用选项
JWT使用笔记:
- JWT是用于认证的字符串,具体原理见上述demo中的学习笔记,下面只讲述怎么使用
- 提供一个JWT工具类
<!--引入jwt-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import java.util.Calendar;
import java.util.Map;
public class JWTUtils {
private static final String SING = "!Q@W3e4r%T^Y";
/**
* 生成token header.payload.sing
*/
public static String getToken(Map<String,String> map){
Calendar instance = Calendar.getInstance();
instance.add(Calendar.DATE,7);//默认7天过期
//创建jwt builder
JWTCreator.Builder builder = JWT.create();
//payload
map.forEach((k,v)->{
builder.withClaim(k,v);
});
String token = builder.withExpiresAt(instance.getTime())//指定令牌过期时间
.sign(Algorithm.HMAC256(SING));//sign
return token;
}
/**
* 验证token 合法性
*
*/
public static DecodedJWT verify(String token){
return JWT.require(Algorithm.HMAC256(SING)).build().verify(token);
}
// /**
// * 获取token信息方法
// */
// public static DecodedJWT getTokenInfo(String token){
// DecodedJWT verify = JWT.require(Algorithm.HMAC256(SING)).build().verify(token);
// return verify;
// }
}
- 参照前文VUE之JWT前后端分离认证,学生管理系统的后端搭建过程,通常在登录成功后,会生成token并返回给前端
- 认证的话,在拦截器中进行认证