社区
Java EE
帖子详情
后端springboot集成shiro+前端vue,前后端分离项目,sessionid拿不到问题、跨域问题。
很搞笑的在打麻将
2019-09-26 02:36:16
后端springboot集成shiro之后,shiro框架会在浏览器端存一个 JSESSIONID ,
之前传统项目中页面每次请求都会带上JSESSIONID 到后台在进行权限验证操作等等,
可是现在是前后端分离,用户是访问前端项目,前端再访问服务端,那么这个JSESSIONID 就存不到用户浏览器中,
还会出现跨域问题,不知各位大佬都是如何解决的。
...全文
1800
3
打赏
收藏
后端springboot集成shiro+前端vue,前后端分离项目,sessionid拿不到问题、跨域问题。
后端springboot集成shiro之后,shiro框架会在浏览器端存一个 JSESSIONID , 之前传统项目中页面每次请求都会带上JSESSIONID 到后台在进行权限验证操作等等, 可是现在是前后端分离,用户是访问前端项目,前端再访问服务端,那么这个JSESSIONID 就存不到用户浏览器中, 还会出现跨域问题,不知各位大佬都是如何解决的。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
很搞笑的在打麻将
2019-09-29
打赏
举报
回复
跨域问题已经很轻易的 得到解决了 ,加了个spring注解即可,@CrossOrigin;
sessionid问题,最终个人解决方案是,用户登陆成功后,接口就返回给他sessionid,然后前端进行保存,后面每次请求都要在请求头上加上该值, AUTHORIZATION:0c82beaf-d2fa-424c-b6bb-5d6eff21a236
,后端需要修改一下shiro获取sessionid方式,具体如下:
1.首先自定义sessionManager会话管理bean;
2.修改获取sessionid方法;
如有异议欢迎下面坐,谢谢各位见解!
丁公子
2019-09-28
打赏
举报
回复
思路挺多的, 简单说几个吧 首先要说的是 JSESSIONID 是tomcat写到浏览器的, 跟shiro没什么关系, 有时候也叫SESSIONID, 这个具体跟你服务器有关, 也可以自定义名称, 在后端可以通过 request.getSession()拿到, 也可以通过 CookieUtils.getCookie("JESESSIONID")这种拿cookie的方式取到 1. 前后端分离,但部署时仍使用同一域名, 这样就不会存在跨域问题, 无论是前端静态代码, 还是前端node服务, 同一用nginx进行处理, 同理, 如果是2级域名,虽然域名不同, 也能做到cookie共享, 这样也可以拿到sessionid 2. 部署如果无法使用同一域名, 那么跨域问题就难免了, 需要跟前端共同研究下如何有效解决跨域问题, 后端其实加一些spring注解即可, 查下spring跨域即可 3. 其实说到底, shiro只不过是要取当前登录信息, 你可以不用 SESSION 实现登录, 可以用token, 这样相当于账号系统独立出来了, 跟域就没什么关系了
BUG收集者
2019-09-26
打赏
举报
回复
main.js axios.defaults.withCredentials=true; 拦截器 response.setHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); response.setHeader("Access-Control-Allow-Headers", "Authorization, Accept, Origin, X-Requested-With, Content-Type, Last-Modified"); response.setHeader("Access-Control-Allow-Credentials", "true");
springboot
集成
shiro
+
前端
vue
,
前
后端
分离
项目
遇到跨域以及
sessionid
拿
不到
等
问题
近期在写
前
后端
分离
的
项目
,由于
前
后端
分离
导致原来使用的
shiro
配置无法满足现有系统要求。同时在
前
后端
分离
项目
中存在的一些
问题
。例如,一些用户信息需要存储在
后端
方便进行安全性判断,但这些存储在
后端
的session
前端
却获取
不到
(特别奇怪),以及浏览器访问
后端
接口出现的
跨域
问题
。
springboot
+
shiro
+
vue
前
后端
分离
跨域
问题
工程为
前
后端
分离
模式,
后端
为
springboot
+
shiro
、
前端
为
vue
;
前端
部署在nginx中; 在此前提条件为
项目
正常,配置正常,不再赘述。
前端
调用
后端
接口服务时报
跨域
问题
:Response to preflight request doesn’t pass access control check: Redirect is not allowed for a preflight request. 解决方案: @Configuration public class CorsConfig implem
SpringBoot
+
Shiro
+Jwt+
Vue
+elementUI实现
前
后端
分离
单体系统Demo
记录一下使用
SpringBoot
集成
Shiro
框架和Jwt框架实现
前
后端
分离
Web
项目
的过程,
后端
使用
SpringBoot
整合
Shiro
+Jwt(auth0),
前端
使用
vue
+elementUI框架,前
后端
的交互使用的是jwt的token,
shiro
的会话关闭,
后端
只需要使用
Shiro
框架根据
前端
传来的jwt的token信息授权访问相应资源。
SpringBoot
+
Vue
前
后端
分离
跨域导致session不一致的
问题
最终发现是localhost和127.0.0.1的
问题
,虽然你用localhost时会主动转到127.0.0.1,但是不代表两者就是同一个玩意,而我前
后端
一个用127.0.0.1 一个用localhost,这就使得session不一致了。网上有很多解决方案,有
前端
的
后端
的,作为一个菜鸟我各种都用了,我也不知道是谁起作用的。我验证码的值存放在session中,然后验证时获取session中存放的值和输入的比较,很简单的逻辑。跨域解决后,能用功能了,很可惜,然后开始弄登录验证码。首先浏览器它有个同源策略。
springboot
+jwt+
shiro
+
vue
+elementUI+axios+redis+mysql完成一个
前
后端
分离
的博客
项目
六万字长文带你入手
springboot
+jwt+
shiro
+
vue
+elementUI+axios+redis+mysql完成一个
前
后端
分离
的博客
项目
Java EE
67,550
社区成员
225,863
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章