【问题标题】:Is req.user guaranteed to be a valid, authenticated user? [passport.js]req.user 是否保证是有效的、经过身份验证的用户? [护照.js]
【发布时间】:2021-02-05 13:00:59
【问题描述】:

我想检查特定用户是否拥有其他用户没有的权限。

假设我有一个具有此特定权限的用户的 ID 列表,是否只需将 req.user.id 与列表中的 ID 进行比较,如果匹配,授予他们权限?有人可以发送请求并填写其他人的 ID 吗?

我正在使用 discord oauth2 和 passport、passport-discord 和 express-session 进行身份验证。

【问题讨论】:

    标签: node.js authentication oauth-2.0 passport.js express-session


    【解决方案1】:

    这取决于您对 passportjs 的实施。如果这是安全的(即使用签名的 JWT 令牌并且您的秘密没有泄露),那么任何人都无法欺骗另一个 ID,您可以信任 req.user.id

    【讨论】:

    • 我没有使用 JWT,我正在使用带有会话 id 的 cookie 的 express-session,该 cookie 也存储在会话存储数据库中。我将用户(带有 id)存储在我的数据库中,并在反序列化时通过其 req.user.id 从那里获取用户。这安全吗?
    • 是的,如果实施得当,它是安全的!
    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 2018-12-21
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多