我正在为我的应用程序使用Nextjs。在一个页面上,我想从经过身份验证的API端点('/ api / profile')获取数据。
我尝试了以下操作,但没有成功:
export async function getServerSideProps(ctx) {
const { req, res } = ctx
const cookies = cookie.parse(req.headers.cookie ?? '')
const mycookie = cookies[MY_COOKIE] // mycookie exists and is set correctly
if (mycookie) {
const response = await fetch(process.env.SERVER_HOST+'/api/profile', {
credentials: 'same-origin' // I tried with and without this, also tried "include" instead
})
...
我有2个问题:
fetch
转发?注意:我的Cookie是httpOnly
。
答案 0 :(得分:1)
结果是我可以通过以下方式手动转发cookie:
if (mycookie) {
const response = await fetch(process.env.SERVER_HOST+'/api/profile', {
headers: {
cookie: mycookie
}
})
...
答案 1 :(得分:1)
如果您使用get服务器端道具,则推荐的方法是处理直接在getserversideprops中拥有的任何数据获取功能。
调用fetch / api是多余的。您可以做的是从api中提取函数,然后直接在getserversideprops中使用它。
您现在正在做什么 客户端->服务器端渲染-> api->服务器端渲染->客户端
它可以变成 客户端->服务器端渲染-客户端