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

news2024/11/16 17:31:28

前端使用 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-c
    cookie-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-c
    cookie-max-age: 86400  
    cookie-http-only: false   #true前端js不能访问
    logout-url: /login

问题终于解决了!

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

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

相关文章

【计算机网络】第四章 网络层(一)

文章目录 第四章 网络层4.1 网络层概述4.2 网络层提供的两种服务4.2.1 小结 第四章 网络层 网络层是计算机网络体系结构中的一个关键层,位于传输层上方、数据链路层下方。它负责将传输层提供的数据分割成适当大小的数据包,并在不同网络之间进行路由选择和…

Segment anything(图片分割大模型)

目录 1.Segment anything 2.补充图像分割和目标检测的区别 1.Segment anything 定义:图像分割通用大模型 延深:可以预计视觉检测大模型,也快了。 进一步理解:传统图像分割对于下图处理时,识别房子的是识别房子的模型…

QtC++ 技术分析4 - 流、d-pointer隐式共享以及容器迭代器

目录 QT 中的流文件系统与底层文件操作文件系统类 QFile QTextStreamQDataStreamQLocale 隐式共享与 d-pointer隐式共享d-pointer 在隐式共享中的应用二进制代码兼容d-pointer 模式实现 Qt 容器及迭代器QTL 概述几种常见的迭代器及其对应类型QTL 容器对应迭代器通用算法函子&am…

特性快闪:使用 Databend 玩转 Iceberg

作者:尚卓燃(PsiACE)澳门科技大学在读硕士,Databend 研发工程师实习生 Apache OpenDAL(Incubating) Committer https://github.com/PsiACE 几周前,Databricks 和 Snowflake 召开了各自的年度大会,除了今年一…

线程池的使用、工作原理和优势

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、线程池概览2.1 为什么创建和销毁线程开销较大2.2 为什…

tinkerCAD案例:26. Making the Amplifier Body 制作放大器主体(1)

tinkerCAD案例:26. Making the Amplifier Body 制作放大器主体 Project Overview: 项目概况: Music is the universal language! And who doesn’t love jamming out to some sweet tunes with friends? But it’s such a bummer when there are more…

【腾讯云Cloud Studio实战训练营】Cloud Studio 快速搭建学习分享

文章目录 零、前言一、Cloud Studio1.1、Cloud Studio是什么1.2、Cloud Studio的优势 二、实战:快速构建React完成点餐H5页面还原2.1、打开官网2.2、选择React 框架模板2.3、编码部分安装 antd-mobile安装 Less安装 normalize上传项目需要的素材替换App.js主文件 2.…

ChatGPT结合知识图谱构建医疗问答应用 (二) - 构建问答流程

一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理,并写入了知识图谱中,本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址: ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱 这里实现问答的流程…

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

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

选择排序算法

选择排序 算法说明与代码实现&#xff1a; 以下是使用Go语言实现的选择排序算法示例代码&#xff1a; package mainimport "fmt"func selectionSort(arr []int) {n : len(arr)for i : 0; i < n-1; i {minIndex : ifor j : i 1; j < n; j {if arr[j] < a…

一篇关于预测“未来”的教程:运行在 Intel AIxBoard™ 开发板上的 TDengine

英特尔数字化开发套件 AIxBoard 是一款 AI 架构的人工智能嵌入式开发板&#xff0c;体积小巧功能强大&#xff0c;可以在时序数据预测、图像分类、目标检测分割和语音处理等应用中并行运行多个神经网络。作为一款面向专业创客、开发者的功能强大的小型计算机&#xff0c;借助开…

牛客网Verilog刷题——VL48

牛客网Verilog刷题——VL48 题目答案 题目 在data_en为高期间&#xff0c;data_in将保持不变&#xff0c;data_en为高至少保持3个B时钟周期。表明&#xff0c;当data_en为高时&#xff0c;可将数据进行同步。本题中data_in端数据变化频率很低&#xff0c;相邻两个数据间的变化&…

字符串性能优化

String 对象作为 Java 语言中重要的数据类型&#xff0c;是内存中占据空间最大的一个对象。高效地 使用字符串&#xff0c;可以提升系统的整体性能。 来一到题来引出这个话题 通过三种不同的方式创建了三个对象&#xff0c;再依次两两匹配&#xff0c;每组被匹配的两个对象是否…

Eclipse使用Ctrl键导致程序卡死的解决方案

在Eclipse中&#xff0c;经常可以使用Ctrl鼠标单击&#xff0c;可以直接将编辑界面引导到相关的方法&#xff0c;属性&#xff0c;或者类。 这个功能确实非常好用&#xff0c;但是由于复制粘贴的功能快捷键也是Ctrl&#xff0c;以致我在快速进行操作的时候&#xff0c;Eclipse…

tinkerCAD案例:27. Build a Mobile Amplifier 构建移动放大器(2)

tinkerCAD案例&#xff1a;27. Build a Mobile Amplifier 构建移动放大器(2) 原文 step 1 Lesson Overview: 课程概述&#xff1a; Now we’re going to adapt the shape to your device! 现在&#xff0c;我们将根据您的设备调整形状&#xff01; step 2 o create an in…

【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

浏览器安装selenium IDE插件并进行网页测试记录

Chrome开发者工具插件,谷歌浏览器开发者工具插件推荐下载_安装_教程-扩展迷 去官网直接搜索下载需要的插件就可。 插件下载安装-Chrome-扩展迷 下载好后解压&#xff1a; 打开Chrome谷歌浏览器&#xff1a; 设置>拓展程序>打开"开发者模式”>将下载好的seleni…

【多模态】21、BARON | 通过引入大量 regions 来提升模型开放词汇目标检测能力(CVPR2021)

文章目录 一、背景二、方法2.1 主要过程2.2 Forming Bag of Regions2.3 Representing Bag of Regions2.4 Aligning bag of regions 三、效果 论文&#xff1a;Aligning Bag of Regions for Open-Vocabulary Object Detection 代码&#xff1a;https://github.com/wusize/ovdet…

SciencePub学术 | 人工智能类重点SCIEEI征稿中

SciencePub学术 刊源推荐: 人工智能类重点SCIE&EI征稿中&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 人工智能类重点SCIE&EI 【期刊简介】IF&#xff1a;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区&#xff1b; 【出版社…

画架构图工具-haydn

Haydn解决方案数字化平台_海顿解决方案工具链-华为云 下图为haydn架构图示例 Haydn解决方案数字化平台_海顿解决方案工具链-华为云 1、vpc是一个很重要的元素&#xff0c;有网络隔离的作用。 2、OBS、CES、CTS&#xff0c;不需要画到vpc里面。 3、不在区域内的资源&#xf…