首页 > 解决方案 > 如何检查用户是否已登录?Passport 和 discord oAuth2 (EJS)

问题描述

如何检查用户是否使用护照和 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

标签: node.jsexpressoauth-2.0discordejs

解决方案


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

  • 定义一个接口来表示与身份验证相关的操作,就像我的这个例子一样

  • 然后,您的大多数应用程序都可以免受任何 OAuth 特定细节的影响,并且可以只询问 isLoggedIn 问题

  • 然后实现可以检查令牌是否可用,就像在这个类中一样


推荐阅读