• 请不要在回答技术问题时复制粘贴 AI 生成的内容
howells
V2EX  ›  程序员

Cookie 中的 path 问题。

  •  
  •   howells · Nov 6, 2020 · 1944 views
    This topic created in 2015 days ago, the information mentioned may be changed or developed.

    我现在有个前后端分离的项目,我请求的 url 为 localhost:8080/api/xxx/xxx ,然后前端代理把它转成 localhost:9090/api/xxx/xxx,这个时候,我发现后端返回前端的 cookie 的 path 是 / ,而不是 /api/xxx,请求知道是什么原因吗

    6 replies    2020-11-06 15:32:59 +08:00
    syozzz
        1
    syozzz  
       Nov 6, 2020
    cookiePath 后端是可以设置的啊, 你确定你的 /api 是应用的上下文,而不是后端设置的统一请求前缀?
    syozzz
        2
    syozzz  
       Nov 6, 2020
    以 Springboot 为例。
    1. /api 是后端开发加的统一前缀,不是上下文,那么 cookiePath 就是默认的上下文 /。
    2. /api 是应用的上下文,但是后端开发自定义了 cookiePath,defaultCookieSerializer.setCookiePath("/"),那么 cookiePath 也为 /。
    howells
        3
    howells  
    OP
       Nov 6, 2020
    @syozzz 我的 /api 只是个标识,说明这个请求需要 proxy,后端的请求 path 是带着 /api 的。对了,我描述的这个 cookie 是 JSESSIONID, 由 tomcat 去设置的
    howells
        4
    howells  
    OP
       Nov 6, 2020
    @syozzz 后端没有自定义,虽然后端的 api 都带上了 /api,
    syozzz
        5
    syozzz  
       Nov 6, 2020
    @howells 我的意思是你们后端没有设置上下文,应用的上下文就是 / 。而给你访问的 /api 是他统一写在 controller 的公共映射。所以 cookiePath 当然就是默认的上下文 / 。
    howells
        6
    howells  
    OP
       Nov 6, 2020
    @syozzz 哦,明白你的意思了,非常感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4282 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 05:20 · PVG 13:20 · LAX 22:20 · JFK 01:20
    ♥ Do have faith in what you're doing.