使用Next.JS,Express和Passport进行用户身份validation的简单示例

我真的不明白,为什么它是如此复杂的build立身份validation,并坚持与Node.js会话。

我遇到了会话持久性的问题, 在这里描述。

也许,我不明白…

因此,在SPA中,当浏览器使用POST方法从UI中fetch时,Passport在数据库中validation并保存会话(就像我设置的那样)。

下一步是什么?

如何告诉React前端(浏览器,服务器…),它应该应用新创build的cookie,并将其用于所有后续请求HMR,GraphQL和其他东西?

我有什么是所有后续请求服务器引用旧的cookie(没有创build一个成功的身份validation),正确的将永远不会查找…

一些解释将不胜感激。

谢谢。

PS:仍然在寻找最新的Next.js,Express和Passport进行身份validation的简单工作示例。 我在一个星期内遇到了这个问题

您可以向快速回复您的信息的端点请求…为此,您可以使用Axios ,当它响应时,您可以设置Cookie像这样:

 document.cookie = `id_token=${token}; expires=Thu, 18 Dec 2020 12:00:00 UTC` 

在我的情况下,我设置了一个令牌,因为我使用JWT,当cookie被设置的时候,你可以在服务器端使用cookie-parser来请求它,所以,当你打算validation用户是否被logging时,你可以检查cookie存在于服务器(Next.js)并呈现模板,否则你可以redirect到其他视图…像这样:

 server.get('/profile', (req, res) => { const actualPage = '/profile'; const logged = req.cookies['id_token'] if (logged) { return app.render(req, res, actualPage) } return res.redirect('/') }) 

如果你想看完整的例子,请检查这个回购