nextjs路由中间件进行身份验证

我正在尝试找出一种合适的身份验证方法,我知道这是GitHub问题页面上的一个敏感话题。

我的身份验证很简单。我将JWT令牌存储在会话中。我将其发送到其他服务器以供批准。如果返回true,则继续进行;如果返回false,则清除会话并将其发送到主页。

在我的server.js文件中,我有以下内容(请注意,我正在使用nextjs

learning中的示例并仅添加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/linkhref

转到那里,则不会。我相信这是因为此时它没有使用express,而是next的自定义路由。

有没有一种方法可以让我检查每笔next/link未通过快递的单据,从而确保用户已登录?

回答:

下次聊天的Tim帮我解决了这个问题。可以在这里找到解决方案,但我会引用他,以便大家看到:

  • 您可以像这样进行签入_app.jsgetInitialProps和重定向
  • 使用方法示例
  • _app.js文档

我还创建了一个示例骨架模板,您可以看一下。

以上是 nextjs路由中间件进行身份验证 的全部内容, 来源链接: utcz.com/qa/434931.html

回到顶部