如何使用Node-Express-Passport/"用于登录和登录主页

How with Node - Express - Passport do I use "/" for login and logged-in homepage?

本文关键字:登录 用于 主页 quot 何使用 Node-Express-Passport      更新时间:2023-09-26

我想用Node.js、Express.js和Passport.js制作一个应用程序,如果你没有登录,它会在主页上显示一个登录表单(现在,也许以后会是一个提供多种身份验证策略的页面)。但如果你登录了,它会加载主页。

Passport.js文档似乎非常清楚如何将登录和主页URL分开,因此只需要复制代码就可以在"/login"处创建一个登录表单,如果登录失败,该表单将在"/loging"处重定向到自己,并显示一条闪显消息,如果您的凭据被检查出来,则会重定向到"/"。然而,我不知道如何从一个URL提供集成服务,如果你没有登录,网站主页会呈现一个"请通过这些策略之一验证你自己"页面(或者可能每个策略链接到一个登录页面,但我现在对这个问题不感兴趣),如果用户登录,则会呈现实际登录的主页内容。

我该怎么做?假设我现在正在使用passport local的用户名密码策略,同时我正在努力确定与Facebook建立关系的一些细节。

您可以在主路由上检查req.user并相应地重定向。

app.get('/', function mainRoute(req, res, next) {
    if (!req.user) res.redirect('/login');
    else res.render('home');
});