集成kisso框架springboot解决登录不了问题

前端使用 VUE 框架,要求请求头中传入 token值,获取设置token使用cookie操作

import Cookies from 'js-cookie'const TokenKey = 'token-c'
export function getToken() {return Cookies.get(TokenKey)
}
export function setToken(token) {Cookies.set(TokenKey, token)return Cookies.set(TokenKey, token)
}
export function removeToken() {return Cookies.remove(TokenKey)
}

后端集成kisso,配置如下

kisso:config:sign-key: {请调用SSOHelper.getHS512SecretKey()生成}cookie-name: token-ccookie-max-age: 86400 logout-url: /login

后端未配置登录拦截,在具体接口上添加 checkLogin()检验未登录抛异常,然后会跳转到登录页面

遇到问题:

        后端登录成功后会在cookie中写token值,前端也会调用写cookie,但是进入/index后就是访问不了,直接又回到/login登录页面。

        分析原因是前端代码 getToken()一直是undefined,如果放到 localStorage中再获取没任何问题,然后又尝前端重新写cookie,修改一下写入参数 Cookies.set(TokenKey, token, {path:"/login"})

 删除之前cookie - token,再尝试登录发现可以正常登录了,于是好好比较一下之前cookie与新cookie,发现了问题的原因是 httpOnly这个参数是不一样的

又搜索了一下 httpOnly的用法说明,httpOnly=true 只允许服务端(后端)操作cookie,前端JS不被允许操作cookie。

 这样一分析就通了,后端登录接口会写入cookie(httpOnly=true),前端永远取不到cookie值,那所有接口请求头就没办法传 token了,所以要解决后端写入cookie(改为 httpOnly=false);跟了一下kisso代码,发现 SSOConfig.cookieHttpOnly 默认为 true,所以改配置如下:

kisso:config:sign-key: {请调用SSOHelper.getHS512SecretKey()生成}cookie-name: token-ccookie-max-age: 86400  cookie-http-only: false   #true前端js不能访问logout-url: /login

问题终于解决了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/17577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6...扩展操作符骚操作

复制和合并数组变得更为简洁。不需要使用 concat() 方法或 slice() 方法,一个 … 操作符已经足够: const arr1 [10, 20, 30];const copy [...arr1];console.log(copy); // → [10, 20, 30]const arr2 [40, 50];const merge [...arr1, ...arr2];co…

html学习3(表格table、列表list)

1、html表格由<table>标签来定义。 <thead>用来定义表格的标题部分&#xff0c;其内部用 <th > 元素定义列的标题&#xff0c;可以使其在表格中以粗体显示&#xff0c;与普通单元格区分开来。<tbody>用来定义表格的主体部分&#xff0c;其内部用<t…

无涯教程-jQuery - Tabs组件函数

窗口小部件选项卡函数可与JqueryUI中的窗口小部件一起使用。选项卡用于在分成逻辑部分的内容之间交换。 Tabs - 语法 $( "#tabs" ).tabs(); Tabs - 示例 以下是显示Tab用法的简单示例- <!doctype html> <html lang"en"><head><m…

stable difussion Pytorch实现与测试

引言: Stable Diffusion是目前最火的AI绘画工具之一,它是一个免费开源的项目,可以被任何人免费部署和使用。通过Stable Diffusion,可以很轻松的通过文字描述,生成对应的图片。由于它是一个开源项目,开源社区(如:GitHub)中有很多插件和训练好的模型,我们可以直接使用。…

【文生图系列】Runaway Gen-2试用体验

文章目录 风景示例动物示例人物动作示例 Runway旗下的视频生成产品Gen-1和Gen-2已彻底开放&#xff0c;任何人都可注册一个账号免费尝试。免费的时长是105s&#xff0c;每个视频生成4s。 看gen-2官网和各公众号放出来的示例&#xff0c;非常震撼&#xff0c;不禁感慨现在文生视…

Ubuntu Server版 之 apache系列 常用配置 以及 隐藏 版本号 IP、Port 搭建服务案例

查看版本 旧的 用 httpd -v 新的 用 apache2 -v 配置检测 旧的 httpd -t 新的 apachectl configtest window用的apache 是 httpd -t Linux 中 apachectl configtest 主配置文件 之前旧版apache 是httpd 现在都改成 apache2 /etc/apache2/apache2.conf window中 httpd.con…

Git全栈体系(三)

第六章 GitHub 操作 一、创建远程仓库 二、远程仓库操作 命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远…

JavaScript---判断用户输入是否为空

输入框对象.value.trim() ! "" // trim() 去除左右空格 trim() 方法: 去除左右空格 eg: <body> <div class"wrapper"><textarea id"tx" placeholder"评论" rows"2" maxlength"200"></…

【C++】模板进阶(模板的特化,非类型模板参数,模板的分离编译)

文章目录 一、模板使用时一定要加typename的情况二、 非类型模板参数三、模板的特化1.函数模板特化2.类模板特化1.全特化&#xff1a;2. 偏特化&#xff1a;1. 部分特化2.参数更一步限制 四、模板的分离编译1.Stack.h2.Stack.cpp(定义)3.test.cpp 一、模板使用时一定要加typena…

TSINGSEE青犀视频汇聚平台EasyCVR多种视频流播放协议介绍

众所周知&#xff0c;TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入&#xff0c;包括主流标准协议GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。今天我们来说一说&#xff0c;EasyCVR平台支持分…

元类在测试框架中的运用

元类在测试框架中的运用 书接上回 我们知道了元类的基本用法&#xff0c;也写了一个小demo&#xff0c;接下来我们就尝试运用进我们测试框架。 #一款无需编码且易用于二次开发的接口测试框架。 #我写的我写的我写的我写的 pip install mwj-apitest #这里面就用到了元类&…

HTML <rp> 标签

实例 一个 ruby 注释&#xff1a; <ruby> 漢 <rt><rp>(</rp>ㄏㄢˋ<rp>)</rp></rt> </ruby>浏览器支持 元素ChromeIEFirefoxSafariOpera<rp>5.05.538.05.015.0 Internet Explorer 9, Firefox, Opera, Chrome 以及 S…

maven本地仓库地址修改+maven国内镜像设置+maven运行所需pos.xml文件配置基本写法

1&#xff0c;maven本地仓库地址修改 maven在使用过程中&#xff0c;本地项目仓库其空间占用会越来越大&#xff0c;但是其默认仓库位置往往是以C盘为主&#xff0c;C盘作为系统盘常常会遇到所在盘空间占满的情况&#xff0c;所以我们将其改至其他硬盘空间位置为适合做法&#…

二十三种设计模式第二十三篇--状态模式

状态模式&#xff0c;是一种行为模式&#xff0c;在软件开发过程中&#xff0c;对象按照不同的情况做出不同的行为&#xff0c;我们把这样的对象称为具有状态的对象&#xff0c;而把影响对象行为的一个或者多个动态变化的属性称为状态。 对这种具有状态的对象变成&#xff0c;…

71. ElasticSearch 5.0.0 安装部署常见错误或问题

文章目录 ElasticSearch 5.0.0 安装部署常见错误或问题问题一&#xff1a;UnsupportedOperationException问题二&#xff1a;ERROR: bootstrap checks failed问题三&#xff1a;max number of threads [1024] for user [es] likely too low, increase to at least [2048]问题四…

opencv03-补充-vector的操作

opencv03-补充-vector的操作 参考&#xff1a;https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html 构造方法(具体介绍看API文档) class Student {public:private:string name;};int main() {vector<int>();vector<int> v1;vector<Student&g…

【kubernetes】k8s单master集群环境搭建及kuboard部署

k8s入门学习环境搭建 学习于许大仙: https://www.yuque.com/fairy-era k8s官网 https://kubernetes.io/ kuboard官网 https://kuboard.cn/ 基于k8s 1.21.10版本 前置环境准备 一主两从&#xff0c;三台虚拟机 CPU内存硬盘角色主机名IPhostname操作系统4C16G50Gmasterk8s-mast…

JVM面试题--JVM组成

JVM是什么 Java Virtual Machine Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 运行流程 什么是程序计数器&#xff1f; 程序计数器&#xff1a;线程私有的&#xff0c;内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。 我们知道ja…

第4章 .NetCore程序通过花生壳实现内网穿透

.NetCore程序在调试环境中都是基于内网的&#xff0c;但是.NetCore程序如果需要集成微信第3方认证程序&#xff0c;由于微信第3方认证程序需要外网把认证后的数据信息&#xff0c;通过外网传输到.NetCore程序中&#xff0c;所以必须先实现把内网地址映射为外网地址这样的操作叫…

【电影推荐系统】数据爬取、数据加载进MongoDB数据库

概览 本篇主要介绍数据来源、数据加载进数据库过程 1 数据获取 使用Scrapy爬取豆瓣电影数据&#xff0c;然后利用movielens数据集来造一份rating数据。 1.1 数据集获取 数据集获取&#xff1a;选取movielens 数据集&#xff1a;movielens官网数据集包括&#xff1a;movies…