我在两个不同的域中有两个webapps WebApp1和WebApp2.
我知道这听起来很奇怪,因为cookie特定于某个域,我们无法从不同的域访问它们; 我听说过CROSS-DOMAIN cookie可以在多个webapps之间共享.如何使用CROSS-DOMAIN cookie实现此要求?
注意:我正在尝试使用J2EE webapps
比方说,我有一个应用程序发送以下HTTP标头设置为名为"a"的cookie:
Set-Cookie: a=1;Path=/;Version=1
Set-Cookie: a=2;Path=/example;Version=1
如果我/example在服务器上访问这两个路径都是有效的,那么我有两个名为"a"的cookie!由于浏览器不发送任何路径信息,因此无法区分这两个cookie.
Cookie: a=2; a=1
该案件应如何处理?选择第一个?创建一个包含所有cookie值的列表?或者这种情况应该被视为开发人员的错误?
我查看了很多关于cookie的问题,但我没有找到关于我的问题的答案.我有以下场景:
用户在example.com上创建登录,并且应该获得cookie,但仅限于子域fuu.example.com.我生成以下HTTP标头部分:
Set-Cookie: name=TestUser; Domain=fuu.example.com; Path=/; secure; HttpOnly 
但是当我向https://fuu.example.com发出请求时,cookie将不会添加到请求中.我想知道example.com是否有可能设置cookie fuu.example.com.我知道example.com也可能.example.com为example.com的所有子域设置一个cookie,但这不是我想要的.
如何为子域设置cookie?我没有在子域的请求中看到cookie.
我简直无法相信这很难确定.
即使已阅读RFC,我也不清楚subdomain.example.com上的服务器是否可以设置可由example.com读取的cookie.
subdomain.example.com可以设置其Domain属性为.example.com的cookie.RFC 2965似乎明确声明这样的cookie不会被发送到example.com,但是同样地说,如果你设置Domain = example.com,前面有一个点,就像你说的那样.example.com.总而言之,这似乎说如果example.com返回使用Domain = example.com设置一个cookie,它就不会得到那个cookie!这不可能是正确的.
任何人都可以澄清规则到底是什么吗?
我想知道什么是host onlycookie.
在检索a时form auth,浏览器会在标题中显示一个JSESSIONID cookie host only.
我正在使用 FastAPIRedirectResponse并尝试将用户从一个应用程序(域)重定向到另一个应用程序(域),并在 ; 中设置一些responsecookie 然而,cookie 总是被删除/不被传输。如果我尝试添加一些标头,我添加到的所有标头RedirectResponse也不会传输。
@router.post("/callback")
async def sso_callback(request: Request):
   jwt_token = generate_token(request)
   redirect_response = RedirectResponse(url="http://192.168.10.1/app/callback", 
                             status_code=303)
   redirect_response.set_cookie(key="accessToken", value=jwt_token, httponly=True)
   redirect_response.headers["Authorization"] = str(jwt_token)
   return redirect_response
我该如何解决这个问题?先谢谢您的帮助。
我创建了一堆用于身份验证的 cookie,网站的一部分允许用户导航到该网站的英国部分。这是通过在域中使用 uk 前缀来实现的。(例如 uk.domain.com)。
我基本上有一个小脚本,用于检查子域是否称为 UK,然后我提供 UK 内容。
我怎样才能让 domain.com 上的所有 cookie 都转移到 uk.domain.com?
我试过了 ...
... 将 cookie 设置为根域
 setcookie("auth", "blahblah", time() + 123, "/", "localhost")
... 在域的开头添加一个点
 setcookie("auth", "blahblah", time() + 123, "/", ".localhost")
...在两个域上创建 cookie
 setcookie("auth", "blahblah", time() + 123, "/", "localhost")
 setcookie("auth", "blahblah", time() + 123, "/", "uk.localhost")
... 创建没有任何域或路径的 cookie。
 setcookie("auth", "blahblah", time() + 123, "/")
 setcookie("auth", "blahblah", time() + 123)
我似乎无法让它发挥作用。
当我domain:".example.com"在 cookie 中使用该值  时,我希望它支持子域xyz.example.com、abc.example.com等
这在 mozilla firefox 上运行良好,但在 google chrome 上似乎不起作用!在 chrome 上,它为xyz.example.com创建了一个新的 cookie,但它无法达到目的。
这是一个已知的问题?任何帮助,将不胜感激!
谢谢。
我们有以下配置:
testing.parentdomain.com
当您访问该域并创建一个购物篮时,我们会创建一个存储该购物篮价值的 cookie。cookie 域设置为.testing.parentdomain.com,它是 Httponly 并且有一个路径/
我们有一个想要访问 cookie 的子域。subdomain.testing.parentdomain.com
此子域调用父域上的端点,例如:testing.parentdomain.com/basketData。此调用是返回 JSON 的 GET 请求。
问题
问题是子域在发出请求时似乎没有发送 cookie 值,因此我们没有得到预期的响应。
尝试
查看其他问题,我们尝试过 CORS 和凭证更改。
作为附加说明,我们将以下 JS 与 webpack/babel 捆绑在一起。
我们的请求来自 AJAX,如下所示:
  $.ajax({
    url: url,
    type: 'GET',
    xhrFields: {
      withCredentials: true
    },
    crossDomain: true
  })
服务器为子域和允许凭据设置了 CORS。在响应中,我们可以看到这些被返回。
access-control-allow-credentials: true 
access-control-allow-origin:从上面的子域
是否有任何原因未将 cookie 与请求一起发送到父域?我们已经注销了服务器端响应中的 cookie,但它们并不像我们预期的那样存在。
:authority: testing.parentdomain.com 
:method: GET 
:path: /basket/data/ 
:scheme: https 
accept: /
 
accept-encoding: gzip, deflate, br 
accept-language: en-GB,en;q=0.9, en-US;q=0.8
来源:https 
://subdomain.testing.parentdomain.com …
cookies ×10
http ×3
cross-domain ×2
javascript ×2
setcookie ×2
cors ×1
fastapi ×1
java-ee ×1
jquery ×1
jsessionid ×1
php ×1
python ×1
redirect ×1
subdomain ×1