Node.js 如何检查用户是否已登录?Passport和discord oAuth2(EJS)

Node.js 如何检查用户是否已登录?Passport和discord oAuth2(EJS),node.js,express,oauth-2.0,discord,ejs,Node.js,Express,Oauth 2.0,Discord,Ejs,如何检查用户是否使用passport和Discord oAuth2登录EJS 我希望它显示2个不同的导航栏和页脚的基础上,如果用户登录或没有到目前为止,我只是得到一堆错误和愤怒的态度 我在这个问题上犯了很多错误,但我认为没有任何错误是导致我尝试的方法无效的原因 我尝试过更改数据库中的值,只是EJS代码中的一个if-else语句。结果是负面的 以下是我到目前为止取得的进展 const { getPermissions } = require('../utils/utils'); // var i

如何检查用户是否使用passport和Discord oAuth2登录EJS

我希望它显示2个不同的导航栏和页脚的基础上,如果用户登录或没有到目前为止,我只是得到一堆错误和愤怒的态度

我在这个问题上犯了很多错误,但我认为没有任何错误是导致我尝试的方法无效的原因

我尝试过更改数据库中的值,只是EJS代码中的一个if-else语句。结果是负面的

以下是我到目前为止取得的进展

const { getPermissions } = require('../utils/utils');

// var isLoggedIn = false

function isAuthorized(req, res, next) {
    if(req.user) {
        console.log("User is logged in.");

        next(isLoggedIn = true);
    }
    else {
        console.log("User is not logged in.");
        
    }
}
router.get('/', (req, res) => {

    res.render('home', {
        isLoggedIn = isLoggedIn()      
     }); 
    })




module.exports = router

我将根据您的UI是否有任何标记来确定这一点。一个有用的设计模式可以如下进行:

  • 定义一个接口来表示与身份验证相关的操作,如中所示

  • 然后,您的大多数应用程序都可以屏蔽任何特定于OAuth的详细信息,只需问isLoggedIn问题即可

  • 然后,实现可以检查令牌是否可用,如中所示


您没有提到您正在处理的非常具体的问题-是
req.user
未定义,等等。?我建议你在登录时检查(甚至在这里发布)你的路线以及你在那里做什么。