gpt4 book ai didi

javascript - nextjs路由中间件用于认证

转载 作者:数据小太阳 更新时间:2023-10-29 03:48:22 25 4
gpt4 key购买 nike

我正在尝试找到一种适当的身份验证方式,我知道这在 GitHub issue page 上是一个敏感的话题。 .

我的身份验证很简单。我在 session 中存储了一个 JWT token 。我将它发送到不同的服务器以供批准。如果我返回 true,我们继续前进,如果我返回 false,它会清除 session 并将它们发送到主页。

在我的 server.js 文件中,我有以下内容(注意 - 我正在使用 nextjs learn 中的示例,并且只是添加了 isAuthenticated):

function isAuthenticated(req, res, next) {
//checks go here

//if (req.user.authenticated)
// return next();

// IF A USER ISN'T LOGGED IN, THEN REDIRECT THEM SOMEWHERE
res.redirect('/');
}

server.get('/p/:id', isAuthenticated, (req, res) => {
const actualPage = '/post'
const queryParams = { id: req.params.id }
app.render(req, res, actualPage, queryParams)
})

这按设计工作。如果我刷新页面 /p/123,它将重定向到 /。但是,如果我通过 next/link href 去那里,它不会。我认为这是因为此时它没有使用 express,而是使用 next 的自定义路由。

有没有一种方法可以为每个未通过 express 的 next/link 进行检查,以确保用户已登录?

最佳答案

下一次聊天中的 Tim 帮助我解决了这个问题。可以找到解决方案here但我会引用他的话让你们都能看到:

我还创建了一个 example skeleton template你可以看看。

--

EDIT July 2021 - WARNING: This is an outdated solution and has not been confirmed to work with the latest versions of next.js. Use skeleton template at your own risk.

关于javascript - nextjs路由中间件用于认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51426252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com