我目前正在使用next.js的服务器端渲染来获取服务器端的API,但我有一个问题,这些API需要一个每1小时过期的令牌,问题是我无法将令牌或到期日期保存在本地存储或cookie上,因为服务器端根本无法访问这些东西,处理这种情况的最佳方法是什么?(请注意,我使用了一个API来生成令牌)。
dxxyhpgq1#
您可以在NextJS的服务器端设置cookie
/app/api/get-token/route.js import { type NextRequest, NextResponse } from 'next/server' export async function GET(request: NextRequest) { let response = NextResponse.next() response.cookies.set('token', 'Bearer abc123') return response }
'use server' import { cookies } from 'next/headers' export function setToken() { cookies().set('token', "abc123") }
你需要先安装'cookies-next'软件包。
npm i cookies-next
yarn add cookies-next
/pages/api/set-cookie.js import { setCookie } from 'cookies-next' export default async function setApiCookie(req, res) { try { setCookie('token', 'Bearer abc123', { req, res, maxAge: 60 * 60 * 24 }) res.status(200).send('set api cookies') } catch (error) { res.status(400).send(error.message) } }
与以前的解决方案一样,您需要安装cookies-next包。
cookies-next
import { setCookie } from 'cookies-next' export const getServerSideProps = ({ req, res }) => { setCookie('token', 'Bearer abc123', { req, res, maxAge: 60 * 60 * 24 }) return { props: {} } }
希望能帮上忙。如果你有任何问题或仍然有问题,请尽管问。
1条答案
按热度按时间dxxyhpgq1#
您可以在NextJS的服务器端设置cookie
(应用路由器)路由API
(应用路由器)服务器操作
(页面路由器)路由API
你需要先安装'cookies-next'软件包。
使用npm
npm i cookies-next
使用Yarn
yarn add cookies-next
(Pages Router)getServerSideProps
与以前的解决方案一样,您需要安装
cookies-next
包。希望能帮上忙。如果你有任何问题或仍然有问题,请尽管问。