如何在Flutter Web中设置特定域的cookie?

问题描述 投票:0回答:1

引用另一个问题: 有没有办法在 Flutter Web 中创建和读取 cookie?

我尝试将域实现到与以下类似的函数中: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie

因此具有以下功能:

document.cookie = 'cookie_name=$cookie_value; domain=$mydomain';

但是,当我运行这个函数时,它没有正确设置cookie。没有域名后缀,它可以工作,但我要求域名是另一个路径。

我注意到由于跨域的安全原因它不起作用。但是,我希望它成为我的 Web DNS 的子域,它仍然位于同一域中,只是不同的子域,例如:

My website: website.samedomain.com
Setting the cookie: *.session.samedomain.com

我还尝试使用 flutter_inappwebview 包,该包在使用

CookieManager
实例设置 cookie 时适用于 Android/IOS,如下例所示,但未在 Flutter Web 上设置 cookie。

CookieManager cookieManager = CookieManager.instance();
await cookieManager.setCookie(
        url: WebUri('http://$domain'), name: "cookie", value: value);

有什么办法可以解决这个问题吗?或者还有其他解决办法吗?

flutter cookies subdomain flutter-inappwebview
1个回答
0
投票

只需使用以下格式,

var mydomain = '.samedomain.com'; // it accepts both 'website' and 'session' cookies 
document.cookie = 'cookie_name=$cookie_value; domain=$mydomain';

如果您使用来自服务器的cookie(例如node/express js),请使用以下

var session = {
   name: "COOKIE_NAME",
   cookie : {
      domain: '.samedomain.com',
      maxAge: 3600000,
      httpOnly: true
   },
   secret: "SECRET_VALUE"
}
© www.soinside.com 2019 - 2024. All rights reserved.