标签: setcookie

使用Swift 3设置Cookie

我正在努力使用Swift 3将cookie设置为WKWebView.我找不到任何使用Swift 3的例子,所以使用Swift - 如何在NSMutableURLRequest中设置cookie作为起点,这就是我所拥有的:

let url = URL(string: "https://s3-us-west-2.amazonaws.com/foo/helloworld.html")

/* Create cookie and place in cookie storage */
let cookieStorage = HTTPCookieStorage.shared
let cookieHeaderField = ["Set-Cookie": "somecookie=" + cookieString + ";"]
let cookie = HTTPCookie.cookies(withResponseHeaderFields: cookieHeaderField, for: url!)
cookieStorage.setCookies(cookie, for: url, mainDocumentURL: nil)

let urlRequest = URLRequest.init(url: url!)
theWebView.load(urlRequest)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用模拟器并使用Safari Develop进行检查时,它表示我没有设置cookie.关于我搞砸了什么或者我没有考虑到的想法?

setcookie wkwebview swift3

8
推荐指数
1
解决办法
4661
查看次数

为什么我的"Set-Cookie"响应标头没有被翻译成实际的cookie?

我正在使用Java 8,Wildfly 11,Spring 4和Apache 2.4.我有这个Java代码来设置会话cookie

cookie = new Cookie(SESSION_ID_KEY, sessionId);
...
final String domain = request.getServerName().indexOf(".") == -1 ? request.getServerName() : request.getServerName().substring(request.getServerName().indexOf(".") + 1, request.getServerName().length());
if (!StringUtils.equals(domain, "localhost") && !isIpAddress)
{
            cookie.setDomain(domain.indexOf('.') > -1 ? "." + domain : domain);
}   // if
final String contextPath = request.getContextPath() != null && request.getContextPath().endsWith("/") ? request.getContextPath().substring(0, request.getContextPath().length() - 1): request.getContextPath();
cookie.setPath(contextPath);
System.out.println("setting domain " + domain + " and context path:" + contextPath);
response.addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)

我在浏览器中注意到这个cookie没有被创建.然后我看了Postman,注意到没有创建cookie,虽然我看到这些响应标题......

Set-Cookie ?MY.SESSION.ID=10c25010534c4dd3900851ec1dfaebeb; path=/context; domain=.compute-1.amazonaws.com
Set-Cookie ?closeTrialNoteDialog=""; Max-Age=0; …
Run Code Online (Sandbox Code Playgroud)

java cookies spring response setcookie

8
推荐指数
3
解决办法
573
查看次数

我无法在本地主机上设置 cookie

我在 localhost:3333 上使用带有 cookie 解析器中间件的 Express 框架的 NodeJS。我的前端由 localhost:3000 上的 react dev 服务器提供服务。这是我第一次尝试使用 cookie。以下是我为 cookie 设置的选项:{ expires: maxAge , httpOnly: true, sameSite: 'none', secure: true, domain: null }。我也尝试过使用和不使用 sameSite、httpOnly 和安全选项。以及域=本地主机。

这是我在尝试设置 cookie 时得到的 http 响应的标头:

Set-Cookie:

sessionid=119faa6a3fcfab0628998ff2592e04ceb06cda12; Path=/; Expires=Sun, 29 Jan 2023 15:20:16 GMT; HttpOnly; Secure; SameSite=None
Run Code Online (Sandbox Code Playgroud)

但问题是 cookie 没有出现在 Chrome 的 Application/Cookies 或 Firefox 的 Storage/Cookies 中。我也无法访问 cookie 作为不同端点上的请求 cookie。然而,它确实适用于我的 vps。vps 使用正确的域名和代理,因此所有请求似乎都来自同一个域/端口,我不知道这是否有所不同。

我还尝试将 127.0.0.1 dev.mylocalhost.com 添加到 /etc/hosts 以在 localhost 上伪造域名。只是阅读一些关于此的内容,不太确定它应该如何工作。我不拥有这个域,这只是在我本地的 /etc/hosts 文件中。我还没有尝试在本地主机上使用代理,所以 cookie 是从服务器上的端口 3333 上设置的,而客户端在端口 3000 …

cookies localhost setcookie

8
推荐指数
1
解决办法
4655
查看次数

使用来自子域的请求发送 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
  })
Run Code Online (Sandbox Code Playgroud)

服务器为子域和允许凭据设置了 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 …

javascript cookies jquery setcookie cors

8
推荐指数
2
解决办法
1075
查看次数

PHP中的setcookie可以产生多个"Set-Cookie"标题吗?

我正在调试Magento系统的问题.

问题是重复的Set-Cookie标头,如下所示:

Set-Cookie: flimmit_session=search-0c30086b812519b006aa27ef4f37f15b-24; path=/; domain=.flimmit.com; httponly
Set-Cookie: flimmit_session=search-0c30086b812519b006aa27ef4f37f15b-24; path=/; domain=.flimmit.com; httponly
Run Code Online (Sandbox Code Playgroud)

使用php的setcookie命令设置cookie.我的问题是,错误使用此函数是否会导致重复的Set-Cookie标头,或者我是否必须在其他地方查找错误...

php cookies setcookie

7
推荐指数
1
解决办法
4713
查看次数

我的cookie只能在他们设置的PHP页面上使用,这是正常的吗?

我无法从设置页面以外的任何页面访问cookie.我查看print_r($_COOKIE)了不同的页面,页面之间唯一的常见变量是$_COOKIE['PHPSESSID'].

我正在开发一个本地XAMPP测试服务器.是否有我应该在PHP.ini上更改的设置,或者这是cookie的正常行为?对不起,我对这些东西有点新鲜,我觉得饼干可以在网站上访问.

我正在设置饼干:

setcookie("user", "Dave Schmave", time()+60*60*24*120);
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.谢谢

php cookies setcookie session-cookies

7
推荐指数
1
解决办法
1366
查看次数

Node,express.session作为中间件不设置cookie

这个问题与NodeJS + Express有关 -将会话中间件应用到我认为可以解决我的问题的一些路线.但事实并非如此.

我正在尝试构建一个站点,其中第一个默认页面显示有关需要使用cookie的站点的用户信息,并让他有可能接受这个.因此,我不希望服务器在用户接受之前发送set-cookie标头.

正如在上面问题的解决方案中,我现在尝试将会话作为中间件插入到应该拥有它的路由中.问题是这样做我从来没有从服务器获得任何set-cookie标头.用Fiddler检查过这个.

我的代码看起来像这样(只有相关部分):

var express = require('express');
var app = express();
var session      = require('express-session');
var mongoose = require('mongoose');
var configDB = require('./config/database.js');
var mongoStore = require('connect-mongo')(session);

mongoose.connect(configDB.url);

var mongoSessionStore = new mongoStore({
    mongoose_connection: mongoose.connections[0]
});

.
.
.

var sessionMiddleware = session({
    secret: 'secret',
    store: mongoSessionStore,
    key:    'express.sessionID',
    cookie: {domain: 'the-domain', path: '/', httpOnly: true, secure: false, maxAge: null },
    saveUninitialized: false,
    resave: false   
});

require('./app/routes.js')(app, passport, sessionMiddleware);
Run Code Online (Sandbox Code Playgroud)

并且路径看起来像这样,在单独的文件中: …

session middleware setcookie node.js express

7
推荐指数
1
解决办法
5783
查看次数

修复后,Safari 11 X-XSRF-TOKEN未更新

最近,Safari 11在Mac OSX上发布.此更新导致我们的Web应用程序与我们的reuest标头上的XSRF结合使用时出现问题.我将尝试以逻辑方式描述问题.这就是好情况的样子:

  1. 当用户想要登录时,他从服务器接收带有Set-Cookie的响应,该Set-Cookie包含XSRF令牌的值. Eg: Set-Cookie: XSRF-TOKEN=LKNBX4DZhL708KjXNkgXnlxTDCNuhsZG1kTc2SFy498; Path=/; Secure

  2. 页面刷新将执行的下一个调用包含标头中的正确XSRF值.在服务器端,检查值等.来自前端的每个调用都将包含该XSRF令牌.

  3. 如果用户注销并想再次登录,则他的XSRF cookie将被新值覆盖,并且能够使用该令牌登录.

我们的问题情况(在Mac OSX上使用Safari 11,其他浏览器不显示此行为):

  1. 如果没有cookie存在,用户可以正常登录

  2. 但是,如果他想重新登录(在上一个会话之后),则会进行刷新.在第一次调用时,刷新其调用的XSRF令牌不会被新值替换,它们仍然包含来自前一会话的旧XSRF令牌.当我们检查此请求时,我们看到此请求中的cookie包含正确的值,但标头反映了旧令牌.

  3. 使用错误标题的此调用会导致会话在后端关闭,因此用户将被踢出会话.TLDR; 在Safari 11中,标题XSRF-TOKEN在刷新后不会相应地更新cookie值.我们在旧版本和其他浏览器上工作,我们认为这是一个Safar 11错误.

还有其他人遇到过类似的问题吗?在Safari 11中刷新页面后,请求的标头值是否未更新?

编辑:经过测试,我们发现在URL中放置时间戳作为查询参数会强制Safari 11发送正确的请求.似乎缓存了一些请求并忽略了更新的标头.

非常感谢!

safari header setcookie http-headers x-xsrf-token

7
推荐指数
1
解决办法
624
查看次数

类型错误:str.trim 不是函数(Request-Promise/Tough-Cookie)

我遇到了与此处讨论的类似问题:https : //github.com/request/request-promise/issues/183

我正在使用 Request-Promise@4.2.2 和 Tough-Cookie@2.3.4

并得到同样的错误:

类型错误:str.trim 不是函数

我也玩过 npm-dedupe

在此处输入图片说明

任何线索,

我的代码如下所示:

let cookie = new tough.Cookie({domain: '.companyName.ninja',
  httpOnly: true,
  name: '_application_session',
  path: '/',
  secure: false,
  value: 'f044888d39e2d19126716d9f54028700' })
let cookieJar = request.jar()
cookieJar.setCookie(cookie, 'http://application.companyName.ninja/')
options.jar = cookieJar
Run Code Online (Sandbox Code Playgroud)

javascript setcookie cookiejar node.js request-promise

7
推荐指数
1
解决办法
2940
查看次数

Angular 9 - ngx-cookie-service 路径出现问题

我正在使用ngx-cookie-service包来存储一些与我的应用程序相关的数据。我需要将此 cookie 保存在基本路径上'/',因此每次我都确切地知道如何检索它。我的这个 cookie 需要更新,当发生这种情况时,新的 cookie 必须存储在相同的路径中(所以在 中'/')。问题是,有时当我刷新页面时,新的 cookie 会保存在新路径中,因此当我尝试用它检索它时this.cookieService.get(cookieName, '/')显然会失败。尽管我明确声明使用'/'as path ,但还是会发生这种情况。它并不总是发生,这会导致调试更加困难。

这是我使用cookies的服务

const urlParamsCookieName = 'errepiuapp-url-params';

/**
 * This service keeps track of the keys used to retrieve objects from the backend.
 */
@Injectable({
  providedIn: 'root'
})
export class KeyLookupService {

  private _lookupUrlSegments = ['students', 'macro', 'lto', 'sto', 'reports'];
  private _paramsMap$: BehaviorSubject<Map<string, any>>;

  private get paramsMap() {
    return this._paramsMap$.getValue()
  }

  constructor(
    private cookieService: CookieService,
    private router: …
Run Code Online (Sandbox Code Playgroud)

cookies setcookie angular-cookies angular ngx-cookie-service

7
推荐指数
1
解决办法
3225
查看次数