【问题标题】:Cookies not saving when being set from json response从 json 响应设置时 cookie 不保存
【发布时间】:2022-07-18 22:57:22
【问题描述】:

我正在尝试在 oAuth 之后保存用户的 access_token 和 refresh_token。

流程:

  • 用户进行身份验证,我从社交网站检索他们的 accessToken、refreshToken 和用户数据
  • 我将数据发送到混音资源路由
  • 在 remix-resource 路由的操作中,我保存了数据,然后尝试使用“Set-Cookie”设置访问令牌和刷新令牌,但它不起作用。

包括我尝试设置 cookie 的 /api/setUser 资源路由的相关部分


export let action: ActionFunction = async ({ request }) => {
    const session = await sessionStorage.getSession(
        request.headers.get('Cookie')
    );
    const jsonData = await request.json();
    session.set('access_token', jsonData['accessToken']);
    session.set('refresh_token', jsonData['refreshToken']);

    return json<LoaderData>(
        { status: 'ok' },
        {
            headers: {
                'Set-Cookie': await sessionStorage.commitSession(session),
            },
        }
    );
};

【问题讨论】:

  • 会话管理对我来说看起来不错。也许是 createCookieSessionStorage 配置。有一次我因为 cookie 中的域属性不正确而卡住了。
  • 你有什么特别的错误吗?注意:如果 cookie 超过 4kb(访问令牌可能很大,取决于它所拥有的数据)它会抛出一个错误

标签: node.js remix.run


【解决方案1】:

确保在您的 createCookieSessionStorage 中将 cookie 路径设置为 /,否则,cookie 仅在您设置的路由上可见。

【讨论】:

    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2021-09-05
    • 2020-07-24
    相关资源
    最近更新 更多