如何在nextjs 13.4.2中在API路由中设置cookie

icomxhvb  于 2023-06-05  发布在  其他
关注(0)|答案(1)|浏览(242)

如何在nextjs 13.4.2中设置cookie
我已经尝试了NextResponse和cookies-next,但它没有在我的浏览器中设置cookie。
我的流程是

  • 用户签名
  • 验证用户
  • 仅在cookie http中保存jwt
  • app/API/signin/route.ts*

我想设置cookie,如果用户登录并保存在cookie存储的jwt令牌

mo49yndu

mo49yndu1#

您可以尝试在NextResponse中使用“Set-Cookie”头。

export async function GET(req: NextRequest) {
    // do stuff here

    return new NextResponse(<JSON body>, {
        status: 200,
        headers: { "Set-Cookie": `jwt=${jwt}; sameSite=strict; httpOnly=true; maxAge=60*60*24` },
    });
}

带有Set-Cookie标头的响应将设置cookie。
否则,如果您希望使用NextResponse方法设置cookie,请先创建响应,然后使用set()

export async function GET(req: NextRequest) {
  const response = NextResponse.json(
    {data},
    { status: 200, statusText: "Set cookie successfully" }
  );

  response.cookies.set({
    name: "jwt",
    value: jwt,
    maxAge: 60*60*24,
    httpOnly: true,
    sameSite: strict,
  });
}

相关问题