remix-auth-socials - http 400 {"message": "Missing state on session."} 在生产中,在本地主机上工作

remix-auth-socials - http 400 {"message": "Missing state on session."} on production, on localhost its working

我正在尝试通过 https://www.npmjs.com/package/remix-auth-socials

在我的第一个 remix.run js FW 上进行 Google 身份验证

在本地主机上,它运行良好,但在生产服务器上,它在重定向回调时崩溃:

我的配置基于 npm package 中的自述文件:

// ~/services/session.server
export const sessionStorage = createCookieSessionStorage({
    cookie: {
        ...
        secure: true
    },
});

...

我在 FW 代码中发现,如果无法从 remix sessionStorage 读取会话,它会崩溃并显示此消息。

有人知道是什么原因造成的吗?

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#attributes

Secure Optional
Indicates that the cookie is sent to the server only when a request is made with the https: scheme (except on localhost), and therefore, is more resistant to man-in-the-middle attacks.

就是这样,我不在 https 上 运行,所以解决方案是设置:

cookie.secure: false

https://github.com/sergiodxa/remix-auth/discussions/156#discussioncomment-2536785

如果您使用其中 cookie 的 maxAge 设置为 0(对于实现 'remember me' 功能很有用)的混音模板之一,这是一个常见问题。然而,这意味着浏览器会立即将 cookie 视为过时的。删除 属性 或将其更新为更长的时间范围。我用 maxAge: 60 * 60 * 24 * 30, // 30 days