我有一个nextjs应用程序,我想检查每个请求以查看cookie中是否保存了JWT。如果没有,我想给他们看一个登录表格。如果确实有,请照常进行。
我想不起来在哪里或怎么做。
我会在pages/_app.js
中这样做吗?有某种中间件吗?
希望我已经解释了我想要完成的工作,有人可以指导我完成该操作的位置或方式。
答案 0 :(得分:0)
如果每个页面都需要令牌,则应在_app.js中进行。 否则,您需要在每个需要授权的页面上进行操作。
您可以使用next-cookies库在服务器端npm i next-cookies
您的get ServerSideProps函数应如下所示:
export const getServerSideProps = async (ctx) => {
try {
const cookies = cookies(ctx);
const { token } = cookies;
// fetch data here with the token...
return {
props: { token },
};
} catch (err) {
// either the `token` cookie didn't exist
// either way: redirect to the login page
console.log(err);
ctx.res.writeHead(302, { Location: "/login" });
ctx.res.end();
return { props: {} };
}
};