js获取cookie获取不到,vue3获取cookie

js获取cookie获取不到,vue3获取cookie


最近项目中在做登录的功能,登录页完成登录后,后端设置两个cookie到前端,一个设置为httpONLY,一个不设置

后来发现设置为httpONLY的cookie除了不可读之外,还不允许获取(查询),这个有点坑,一直以为是协议的问题


1.下载依赖包

npm i js-cookie -S

2.在使用cookie的页面上进行引入

import Cookies from 'js-cookie'

3.使用

创建一个在整个网站上有效的Cookie

Cookies.set('name', 'value');

创建一个从现在起7天后过期的cookie,在整个站点上有效:

Cookies.set('name', 'value', { expires: 7 });

创建一个过期的cookie,对当前页面的路径有效:

Cookies.set('name', 'value', { expires: 7, path: '' });

读取cookie:

Cookies.get('name');

阅读所有可见的Cookie

Cookies.get(); // => { name: 'value' }

删除cookie:

Cookies.remove('name');

删除对当前页面路径有效的cookie:

Cookies.set('name', 'value', { path: '' });
Cookies.remove('name');

注意:删除cookie时,必须传递用于设置cookie的完全相同的路径和域属性,除非您依赖于默认属性

注意:删除不存在的cookie不会引发任何异常,也不会返回任何值

httpOnly是服务器可访问 cookie, 默认是 true

禁止javascript操作cookie,为避免跨域脚本(xss)攻击,通过javascript的document.cookie无法访问带有HttpOnly标记的cookie

在后端设置httponly为false即可

Cookie cookie2 = new Cookie("username",username);
cookie2.setPath("/");
cookie2.setMaxAge(Math.toIntExact(redisSessionUtils.getTIMEOUTSECONDS()));
cookie2.setHttpOnly(false);
response.addCookie(cookie2);

你可能感兴趣的:(前端,#,Vue,javascript,前端,服务器)