Sveltekit 新创建的 cookie 未显示在钩子的句柄函数中

2024-02-15

Summary

Once 设置cookie标头在响应中发送,在 cookie 可见之前需要另一个请求handle()函数在hooks.ts file.

Example

  1. 用户将用户名和密码发布到登录端点;
  2. Enpoint 用 set 响应访问令牌cookie 头;
  3. 应将用户重定向到受保护的页面。 (FAILS)

它失败是因为 authguard 检查 cookie 是否存在,但此时从代码端看不到它,只能在浏览器端看到。

  1. 刷新页面

  2. 用户现在可以重定向到受保护的页面。

最低限度的繁殖 https://github.com/rudgalvis/MR-svelte-cookie

它具有虚拟登录/注销功能和受保护的用户配置文件。还有服务器端控制台日志显示 cookielags在钩子中被识别。


正如评论中提到的,您的服务器返回 HTTP 状态代码 200,该状态代码在登录后不会重定向客户端。由于状态代码,浏览器假设它已经到达最终目的地。

在这种情况下,最佳实践是使用状态代码 302:

修改/src/routes/auth/login.ts

import * as cookie from 'cookie';

export const post = (request) => {
    return {
        status: 302,
        headers: {
            location: '/',
            'set-cookie': `${cookie.serialize('token', 'VALUE_OF_THE_COOKIE')}; path=/; HttpOnly`
        }
    }
};

export const del = (request) => {
    return {
        status: 302,
        headers: {
            location: '/',
            'set-cookie': `${cookie.serialize('token', '')}; path=/; HttpOnly; maxAge: 0`
        }
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sveltekit 新创建的 cookie 未显示在钩子的句柄函数中 的相关文章

  • 无法登录 Magento 管理员

    我在登录我们的一个临时站点上的 Magento 管理面板时遇到问题 它在我们的 webdev 服务器上 100 工作 不久前在临时服务器上也工作得很好 我做了一些研究 大多数人认为这与在本地主机上运行 Magento 以及浏览器不为域名中没
  • 如何从命令行将 Svelte 文件编译为 JavaScript?

    我是新来的Svelte https svelte dev 快速提问 Svelte 编译器有 CLI 吗 如何访问它 我知道 Svelte 有一个使用 rollup 的预配置设置 但不使用什么 用于构建应用程序 一切都很好 但我只需要 CLI
  • Cookie 未设置或首次不起作用

    在每个页面上 我都设置了一个 cookie 来为与该会话对应的标题按钮着色 问题是 当我第一次在不同的部分打开页面时 cookie 仍然是旧的 彩色按钮也是如此 然后 如果我再次单击同一按钮 则 cookie 会被正确设置 为什么 这是我的
  • 如何在 sveltekit 应用程序中将菜单项设置为活动状态

    我一直在开发 sveltekit 应用程序 最近我的主导航菜单遇到了问题 当加载或刷新应用程序时 与当前 URL 对应的当前菜单项不会设置为活动状态 即菜单项 Home 的 URL 为 我很难在网上找到任何有用的东西来演示如何设置它 但我有
  • 绑定到 `onbeforeunload`

    我希望绑定到
  • 如何在php中检查来自其他网站的cookie并不允许访问我的网站?

    如何在php中检查来自其他网站的cookie并不允许访问我的网站 如果客户端有 cookie 示例 如果有来自 www example com 的 cookie 它会被重定向到其他网站吗 请帮助我其他网站上的一些人对我的不良网站发表评论 我
  • 创建持久的 php 登录 cookie 会话

    我试图让我的登录会话持续更长时间 这样人们就不会过早退出我的网站 例如 制作一篇博客文章并在提交时丢失 因为 php 的 cookie 过期了 理想情况下 我想给他们一个 2 小时的会话 他们不会注销 每次加载页面时都会刷新 下面的代码片段
  • 仅在第一次使用 localStorage 加载网站时显示 DIV

    我正在尝试完成这项工作 但我遇到了一些问题 就像标题所说 我希望仅在第一次加载网站时显示 DIV 我知道如何使用 PHP 和 Cookie 但我想要使用 localStorage 函数 这是我的代码 div div document rea
  • 让用户在深色和浅色模式之间进行选择(保存每个页面的设置,cookies?)

    我最近刚刚开始使用 javascript 和 jQuery 所以我不是专家 目前我正在努力解决我认为可以称为 基本任务 的问题 我想在主页上添加两个按钮 用户可以使用它们将网站模式设置为深色或浅色 当用户进入网站并单击不同的链接时 应该记住
  • Node + Express + Nginx 未设置 Cookie

    我有一个使用 Express 的 Node 应用程序 我尝试为我的客户端设置 cookie 它在本地环境 http 上运行良好 但是一旦我投入生产 https 我就很好地收到了cookie 我可以在响应中看到它 但它没有设置 任何想法 Ng
  • 切换到负载均衡器后,django 帖子收到 CSRF 验证失败

    我有一个有效的登录模板 可以发布帖子 如下所示
  • 在 Rails 5 控制器集成测试中设置 cookie.signed

    想象一下这样的场景 有一个控制器集成测试调用一个控制器方法 其中cookie signed用于一些完整性检查 控制器 app controllers foo controller rb def index entity FooEntity
  • Cookie 不会重置

    好吧 我被难住了 我已经盯着这个看了好几个小时了 我使用以下代码在 access login php 设置 cookie setcookie username username time 604800 当我尝试注销 位于 access lo
  • 使用 Rails 自动登录?

    我正在尝试使用 Rails 的 Restful Authentication 插件建立一个简单的身份验证系统 我只是想知道它是如何工作的 b c 我似乎无法弄清楚 cookie 的要求是什么 以及如何做到这一点浏览器始终会记住您 6 个多月
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • 如何在 svelte 中制作搜索过滤器

    我有两个组件在组件树中距离很远 我对如何在两者之间进行通信存有疑问 我有搜索组件 listItems 和商店 商店 svelte
  • 如何将数据从布局传递到 Sapper 中的页面?

    在 Svelte 中你可以通过插槽中内容的道具 https svelte dev tutorial slot props
  • Cordova 上的 ClearCookiesAsync()

    我正在尝试使用 wp8 cordova 中的插件来清除 WebBrowser cookie 我已经让它与 JavaScript 进行通信 并且我的 c 文件中有类似这样的内容 using WPCordovaClassLib Cordova
  • 如何在 Rails rspec 中测试 cookie 过期时间

    在 rspec 中设置 cookie 有很多困惑http relishapp com rspec rspec rails v 2 6 dir controller specs file cookies http relishapp com
  • nginx代理认证拦截

    我有几个服务 它们支持 nginx 实例 为了处理身份验证 在 nginx 中 我拦截每个请求并将其发送到身份验证服务 在那里 如果凭据正确 我将设置一个包含用户相关信息的 cookie 现在 请求应该被路由到适当的服务 并设置 cooki

随机推荐