标签: setcookie

AWS Lambda Set-Cookie 标头未在浏览器中设置

我正在尝试在我的 aws lambda 函数响应中设置 cookie。我没有任何标头映射,因为我正在使用 lambda 代理与 API Gateway 集成。lambda 函数中的响应代码如下所示:

exports.handler = async (event) => {     
const response = {
    statusCode: 200,
    "multiValueHeaders": {
    "Set-Cookie": ["gtgm=6c7729687d5ff1a05f1a5dfb15ce3b8fa3f2b590; path=/; expires=Fri, 13-Feb-2032 13:27:44 GMT; secure; HttpOnly; SameSite=None"]
  },
    headers: {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Credentials": true,
    },
  };
  return response;
};
Run Code Online (Sandbox Code Playgroud)

我使用 fiddler 检查响应,我可以在响应中看到“Set-Cookie...”,这让我相信上面的代码是正确的?问题是浏览器只是忽略它并且除了 AWS DNT cookie 之外根本不设置任何 cookie。我不确定还需要检查什么,或者我是否遗漏了 cookie 配置中的任何内容。

这就是我的请求:

<Button
      onClick={() => {
        fetch(
          "https:mysupercoolapi.com/cookie-test/",
          {
            // credentials: "include",
            headers: {
              "Content-Type": "application/json",
              // "Access-Control-Allow-Credentials": "true",
            },
          }
        ) …
Run Code Online (Sandbox Code Playgroud)

httpcookie setcookie aws-lambda aws-api-gateway

5
推荐指数
1
解决办法
4504
查看次数

Cookie 在本地主机上工作正常,但在 vercel 生产上无法工作

我在中间件中设置 cookie:

export function middleware(req: NextRequest) {
  const cookie = req.cookies.get("app_id")?.value;
  if (cookie) return NextResponse.next();

  const requestHeaders = new Headers(req.headers);
  const app_id: string | undefined = requestHeaders.get("host")?.split(".")[0];
  requestHeaders.set("app_id", app_id?.toString() || "");

  const response = NextResponse.next({
    request: {
      headers: requestHeaders,
    },
  });
  response.cookies.set("app_id", app_id || "");
  return response;
}
Run Code Online (Sandbox Code Playgroud)

现在我在应用程序目录中有一个页面,我在其中使用下一个标题和cookie来获取app_id,它可以在本地主机上正常工作,但不能在vercel生产上工作。

页面代码:

async function fetchMethod(category_id: string | number | boolean) {
  const url = "https:/rest_api";
  const cookieStore = cookies();
  const header = headers();

  const app_id_cookie =
    cookieStore.get("app_id")?.value || header.get("Cookie")?.split("=")[1];
  console.log(app_id_cookie);
  const bodyData …
Run Code Online (Sandbox Code Playgroud)

setcookie vercel next.js13

5
推荐指数
1
解决办法
434
查看次数

设置cookie以保存PHP的登录详细信息

我有一个典型的登录名(用户名,密码),还希望包含一个"保存我的详细信息"复选框.登录表单将其值发布到login_script.php,如果登录成功,则将用户重定向到站点的主页面.

我想用这个方法来保存登录细节

//Remember Me Function

if(isset($_POST['remember_me'])){

    // Set a cookie that expires in 24 hours
    setcookie("username",$username, time()+3600*24);
    setcookie("password",$password, time()+3600*24);

}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,setcookie("username",$username, time()+3600*24);必须在执行任何其他代码之前将其设置在PHP页面的顶部.

我的问题是我不想设置cookie,除非用户已成功登录.但是由于在登录测试后在脚本中间调用了set cookie函数,它将无法工作.

有任何想法吗?干杯.

php login setcookie

4
推荐指数
1
解决办法
2万
查看次数

用PHP测试cookie的单元

依赖于会话/ cookie信息的单元测试功能的默认做法是使用抽象库.但是如果我想编写和单元测试这个抽象库呢?PHP setcookie函数的文档说明cookie将在下一个请求时可用.使用命令行工具进行测试,没有"请求"这样的东西.那么如何才能对正确的cookie设置进行单元测试呢?

我想测试setcookie我的抽象库是否正确设置了函数的所有参数.这些参数将根据某些条件和方法调用进行设置.

我能想到的唯一解决方案是setcookie使用runkit扩展模拟函数,我不想安装它.其他想法?

php cookies unit-testing http setcookie

4
推荐指数
1
解决办法
8799
查看次数

php设置cookie问题

我正在使用以下语法在localhost上设置cookie

setcookie("testCookie ", "hello cookie", false, "/", false);
Run Code Online (Sandbox Code Playgroud)

问题是我第一次访问页面时创建了cookie并显示了firebug

Cookie testCookie added.  hello cookie
Run Code Online (Sandbox Code Playgroud)

但它没有读取价值.如果我刷新页面,则会读取值并显示火灾错误

Cookie testCookie changed.  hello cookie
Run Code Online (Sandbox Code Playgroud)

如何在第一次加载页面时获取cookie的值?

php setcookie

4
推荐指数
1
解决办法
7899
查看次数

C#获取或设置cookie,使用cookie从Web下载内容

我需要帮助cookies.我正在计划使用cookie来下载网页内容.要获取我需要登录网站的内容,因为只有授权用户才能下载网页内容或文件.我正在使用

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

然后我正在抓源代码,我需要获取文件的链接,但我不能得到因为我没有被授权,所以我需要设置cookie.我之前没有使用过cookies.我该怎么做?

c# cookies httpwebrequest setcookie c#-4.0

4
推荐指数
1
解决办法
2万
查看次数

cURL不再设置cookie,但为什么?

我的cURL脚本在我的本地主机不再工作(所以请记住它之前的DID工作)(因此它可以在我的外部主机上工作,因此:它可能是服务器设置):

这个脚本在我的localhost之前工作正常(它仍然在我的主机上).没有改变.

  • 也许我在本地主机上运行这个脚本超过3000次的事实对我们来说很有用.
  • 我在Windows 7上运行,使用WampServer来设置主机.
  • 我可能更改了一个设置,这会影响cookie的写入.但是哪一个?

真正的问题:cURL没有设置cookie!什么apache模块应该用于写入cookie(在.txt文件中)?我正在运行wampserver.

请注意我已经在使用:

    curl_setopt($curlTable, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($curlTable, CURLOPT_COOKIEFILE, 'cookie.txt');
Run Code Online (Sandbox Code Playgroud)

那个php.ini是:

extension=php_curl.dll is uncommented
Run Code Online (Sandbox Code Playgroud)
  • 附带问题:curl_close是否取消了cookie?如果没有设置cookiejar选项?
  • 主要问题:为什么不像他们应该做的那样卷曲写一个cookie(并且在我的外部主机上,而不是在我的LOCALHOST上).

其他信息:

phpinfo()函数

curl
cURL support        enabled
cURL Information    7.21.7
Age                 3
Features
AsynchDNS           Yes
Debug               No
GSS-Negotiate       Yes
IDN                 No
IPv6                Yes
Largefile           Yes
NTLM                Yes
SPNEGO              No
SSL                 Yes
SSPI                Yes
krb4                No
libz                Yes
CharConv            No
Protocols           dict, file, ftp, ftps, gopher, 
                    http, https, imap, imaps, ldap, pop3,
                    pop3s, rtsp, …
Run Code Online (Sandbox Code Playgroud)

php cookies curl setcookie

4
推荐指数
2
解决办法
1万
查看次数

如何用PHP中的新值覆盖现有Cookie?

我一直在搜索如何覆盖某个cookie值,例如在用户的信息中.如何将cookie调回到用户输入上匹配的客户端.饼干改变它的价值?

php cookies setcookie session-cookies

4
推荐指数
1
解决办法
1万
查看次数

HTTP 重定向 (302) 在以下 GET 请求中不使用 Cookie

这是我已经研究了一段时间的一个问题。

我有一个重定向似乎不尊重 302 重定向中的 Set-Cookie 属性。

这是我使用wireshark获取的请求和响应标头。

HTTP/1.1 302 Moved Temporarily\r\n
Connection: close\r\n
Location: http://192.168.1.1:8888/home/\r\n
Set-Cookie: foo=test_data; Domain=192.168.1.1; Path=/\r\n
\r\n

GET /home/ HTTP/1.1\r\n
Host: 192.168.1.1:8888\r\n
Connection: keep-alive\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: en-US,en;q=0.8\r\n
DNT: 1\r\n
\r\n
Run Code Online (Sandbox Code Playgroud)

我只是对内容进行了一些消毒,但不应该修改任何重要的内容。关键是无论我使用什么浏览器,cookie 'foo' 都不会放在 302 之后的 GET 请求中。从我读到的内容来看,这不是预期的行为。我相信这一点是错误的吗?302 有什么我遗漏或做错的地方吗?

cookies redirect get http setcookie

4
推荐指数
1
解决办法
7426
查看次数

Set-Cookie 被阻止,因为其域属性对于当前主机 url 无效

我有一个带有 domain 的 react 前端sambat.io,部署到 Vercel (Zeit) 和一个 Node API 部署到 Heroku,具有这个域https://safe-ridge-68566.herokuapp.com/和 cookie 设置,如下所示:

res.cookie('something', 'ckwdnjwedjbdh3bhbd2hdbhbhbhfbdsf', {
    httpOnly: true,
    sameSite: 'none',
    domain: '.sambat.io',
    secure: true
  })
Run Code Online (Sandbox Code Playgroud)

当我访问前端时,我可以看到Set-Cookie响应中的标头,但它不会设置 cookie 并且有以下警告:

此 Set-Cookie 被阻止,因为其域属性对于当前主机 url 无效。

我在这里错过了什么?

以下是网络请求和响应的详细信息:

GENERAL

Request URL: https://safe-ridge-68566.herokuapp.com/users/twitter
Request Method: POST
Status Code: 201 Created
Run Code Online (Sandbox Code Playgroud)
RESPONSE HEADERS

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://sambat.io
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Set-Cookie: something=hwjdhwjdhwjehdjwdhuhhd3hd3u; Domain=.sambat.io; Path=/; HttpOnly; Secure; SameSite=None
Vary: Origin
Run Code Online (Sandbox Code Playgroud)
REQUEST HEADERS

Accept: application/json, text/plain, */*
Connection: …
Run Code Online (Sandbox Code Playgroud)

javascript cookies setcookie node.js express

4
推荐指数
1
解决办法
1万
查看次数