路由中获取 cookie?"/>
如何在 Nextjs api 路由中获取 cookie?
我正在用 Next.Js 和 MongoDB 构建一个笔记应用程序。我创建了一个登录系统,允许用户创建一个帐户并登录以创建笔记。
对于身份验证,我使用的是 JWT。当用户登录时,将创建名为
jwtToken
的cookie。 Token 包含 name
和 email
.
我在
createNote
中创建了一个名为/api/createNote.js
的API。在 API 路由中,我想访问 cookies jwtToken
以便在下一步之前验证用户是否登录。
在
/api/createNote.js
我访问cookie(jwt令牌)并解码它以获得email
.
const token = req.cookies.jwtToken;
const data = jwt.decode(token);
const email = data.email;
在将
email
记录到控制台或像 res.json({data})
一样将其作为 JSON 发送时,我没有看到任何错误。这行得通,但实际上当我在 if
语句中使用它时会出现问题。
代码如下:
if(!email){
res.json({msg: "Your are not logged in! Please login first.})
}else if(email){
// do something
}
我在控制台看到这个
error
:
注意
只有当我在 if 语句中使用
email
时才会出现问题。我不知道为什么。请帮助我错误在哪里或如何解决它。
回答如下:
// data itself could be null
// if data is null and data.email will throw error
const data = jwt.decode(token) as { email: string };
if (!data.email) {
return res.status(401).json({
msg: "Your are not logged in! Please login first."
});
}
更多推荐
如何在 Nextjs api 路由中获取 cookie?
发布评论