0

我试图将我的一条路由隐藏在 Firebase Auth 后面的 NextJS 中。我将令牌存储在上下文中并在 getServerSideProps 中检索令牌。这在开发中有效,但一旦部署到 Vercel 就会失败。登录后我看到 cookie 在那里,但 try 块失败。

在此处输入图像描述

我想知道这是否是生产环境中的竞争条件,但我正在使用异步等待。

这是失败的集团。

export async function getServerSideProps(context) {
    //console.log(context)
    try {        
        const cookies = nookies.get(context);
        //const cookies = Cookies.get(context);
        const token = await verifyIdToken(cookies.token);
        const {uid, email} = token;
        //console.log("Token in vendors: ", token);
        return {
            props: {
                session: `Email: ${email} IUD: ${uid}`
            }
        }
    } catch (err) {
        context.res.writeHead(302, {location: "/"}); //login //change to welcome page
        context.res.end();
        return (
            { props: [] }
        )
    }
}

我正在使用 nookies,我什至尝试按照某人的建议切换到 cookie-js。任何帮助将不胜感激。

这是回购: https ://github.com/craigbauerwebdev/next-tartanbook

令牌设置在这里: https ://github.com/craigbauerwebdev/next-tartanbook/blob/master/components/Auth/Auth.js

正在此处检索令牌: https ://github.com/craigbauerwebdev/next-tartanbook/blob/master/pages/vendors/index.js

4

0 回答 0