代码之家  ›  专栏  ›  技术社区  ›  Hammerbot

对OAuth 2使用Json Web令牌

  •  1
  • Hammerbot  · 技术社区  · 8 年前

    我正在尝试用OAuth 2构建一个授权和身份验证系统,我对不同字符串的生成有一些疑问。

    • client_id :为了生成 客户端id ,我使用 ObjectId 来自 mongoDB ,其形式如下: 507f1f77bcf86cd799439011
    • client_secret :我使用由 crypto NodeJS模块
    • access_token :目前,我使用JWT令牌,因为我喜欢这样的原则:能够通过该令牌保存信息,并且能够在每次请求时访问资源,而无需查询身份验证服务器(无状态体系结构)。
    • refresh_token :我还想对这种令牌使用JWT。

    问题是:在OAuth 2中使用JWT令牌是一种不好的做法吗?如果这是一种不好的做法,为什么?他们对我的 客户端id client\u机密 一代

    1 回复  |  直到 8 年前
        1
  •  1
  •   Community Mohan Dere    4 年前

    将JWT用于令牌是可以的(例如,Microsoft Azure使用JWT形式的令牌),只有一件事需要注意。如果您决定实施 revocation endpoint ,您必须将令牌的生存期设置为较短的时间(以便在被吊销后不会使用太长时间),或者在 introspection endpoint OAuth2服务器的。

    使用 client_id ,如果 ObjectId 是MongoDb中的记录标识符,我将使用非DB生成的值。对于生成的值,如果需要使用自定义值作为 客户端id . 这不是一个有力的论点,但我认为值得考虑。