m0_53644147 2023-07-31 21:45 采纳率: 57.1%
浏览 10
已结题

前后端交互,后端session为null

用户登录成功时,后端将用户信息存入session,之后前端调用接口从数据库中获取用户的最新信息,后端根据session中用户id去查询,可是这个时候从session中获取到的用户信息为null,好像是因为前端的请求头中没有设置Cookie,可是Cookie被设置了HttpOnly,我该如何去解决呢?前端Vue3,后端SpringBoot

  • 写回答

2条回答 默认 最新

  • David1055259499 2023-07-31 22:26
    关注

    结合GPT与我的想法:

    如果你在前端的请求中没有设置Cookie,可能会导致后端无法正确获取Session中的用户信息。在前后端交互中,需要确保在前端请求中包含Session相关的信息。以下是一些可能导致问题的原因和解决方案:

    跨域问题:如果前端和后端的域名不同,可能会导致跨域问题。确保在前端请求中设置正确的跨域配置,让后端可以正确接收请求,并设置跨域请求所需的CORS(跨域资源共享)配置。

    前端请求中缺少Cookie:确保前端请求中包含Session相关的Cookie信息。由于HttpOnly属性设置,JavaScript无法访问HttpOnly的Cookie,但它会在每次请求时自动包含在请求头中,不需要手动设置。

    跨站请求伪造(CSRF)保护:如果后端开启了CSRF保护,确保在前端请求中包含CSRF令牌,以防止CSRF攻击。CSRF令牌通常是通过后端生成,并在前端请求的请求头或请求参数中携带。

    Spring Security配置:如果你在后端使用了Spring Security,确保配置正确,以允许前端请求正确地使用Session信息。

    登录认证问题:确保用户登录成功后,后端正确将用户信息存入Session,并返回合适的Session ID或Token给前端。前端在后续的请求中应当携带该Session ID或Token。

    Session有效期设置:确保Session的有效期设置合理,如果Session过期,可能导致后端无法正确获取用户信息。

    在调试过程中,你可以使用浏览器的开发者工具来查看请求的请求头和响应头,确认是否正确携带了Session相关的信息。同时,在后端接口中可以输出日志,确认是否正确获取到了Session中的用户信息。

    请注意,为了确保安全性,处理用户信息时需要遵循相关的安全规范,尽量避免将敏感信息直接暴露在前端请求中。对于敏感信息,应当在后端进行处理和保护。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 创建了问题 7月31日

悬赏问题

  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 如何卸载arcgis 10.1 data reviewer for desktop
  • ¥15 共享文件夹会话中为什么会有WORKGROUP
  • ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)