跨域访问sessionId不一致问题【面试+工作】

跨域访问sessionId不一致问题【面试+工作】

在开发过程中遇到这么一个问题,让我花了一个下午的大好时光才解决。但是解决玩之后,发现那么的容易。就是查找资料的时候很费劲。这里把问题记录一下。

问题的产生

  • 流程是这样的,要做一个用户登录的接口。在登录页面,前端先请求验证码,然后输入用户名密码和验证码之后,请求登录接口。
  • 这里存在两个接口,验证码接口和登录接口。在验证码接口中我用session保存验证码,在登录接口中我从session取出验证码进行校验。 两个接口的代码如下:

*经过postman工具简单的接口测试之后,没有问题。但是与前端进行接口联调的时候发现了问题。 两次获取的sessionid不一致,导致在登录时候,没有获取session中的验证码!

查找原因

百思不得其解!为什么用postman测试是正常的呢?而与前端联调就有这种问题。 原来后台是做了一个跨域访问的设置

主要解释如下: registry.allowedOrigins(““)设置跨域访问的域名,如果是,默认都可以访问。 这个方法是后来找到问题后,自己加上去的 registry.allowCredentials(true)设置是否允许客户端发送cookie信息。默认是false

解决问题

其实最后就做了两件事情, 1.服务端设置可以接收cookie信息

2.在ajax请求中设置发送cookie信息

再看看结果,sessionid就一致了。

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2018-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

5分钟教你学会Django系统错误监控

话不多说,直入正题。 先上图,看一下监控的效果。 如下是监控我们网站系统错误的邮件。包含了请求的url地址,以及详细的异常信息。 一、监控所有的request...

37960
来自专栏云加头条

Git 2.13 正式发布,可检测 SHA-1 冲突

最近,开源项目 Git 正式发布了 Git 2.13.0 版本,包括了来自 65 位贡献者开发的特性和 Bug 修复。其中特别值得一提的一处 Bug 修复与 `...

49900
来自专栏PHP实战技术

你的api上锁了吗?

职责单一化,各司其职,后端只负责Api接口编写提供给各种不同类型的客户端去调用,但是客户端和服务器端调用是要有权限限制的,不能任何一个客户端都可以随便调用我们的...

11020
来自专栏北京马哥教育

5分钟教你学会Django系统错误监控

django.utils.log.AdminEmailHandler为django处理系统日志发送邮件的handler

21440
来自专栏PHP实战技术

你的Api接口上锁了吗?

职责单一化,各司其职,后端只负责Api接口编写提供给各种不同类型的客户端去调用,但是客户端和服务器端调用是要有权限限制的,不能任何一个客户端都可以随便调用我们的...

12910
来自专栏记事本

2018上海大学生安全竞赛web3解析

先看后缀名绕过吧。看着有点熟悉,总感觉在哪见过,后来才想起是pwnhub的公开赛里见过,考察的是end()函数。给个例子输出就清楚了。

741450
来自专栏信安之路

代码安全之上传文件

从数据包中可以看出,验证文件类型的参数有:Content-Type、Filename、Filedata。

14300
来自专栏原创

个推推送iOS版 常见问题详解

1、提交了.p12文件后多久可以测试? 提交后10分钟左右才可以测试,并不是立即生效的。 2、应用在后台时接收不到消息,即APNS消息接收不到? 1.    先...

389110
来自专栏吴伟祥

配置Tomcat使用https协议(配置SSL协议) (http自动跳转到https)

14120
来自专栏北京马哥教育

SSH协议详解

一、 前言 使用SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全。而OpenSSH是SSH协议的免费开源实现,它采用安全、加密的网络连接...

1K40

扫码关注云+社区

领取腾讯云代金券