【问题标题】:When should I use oauth or jwt?我什么时候应该使用 oauth 或 jwt?
【发布时间】:2021-06-13 08:13:48
【问题描述】:

我目前正在使用node.jsexpress.js 为框架构建服务器端。对于登录和身份验证机制,我使用 JWT 的用户名和密码。

此服务器用于为许多客户端提供服务,例如 ios、android 和 web 应用程序。

那么,我应该使用oauth 进行此非协议身份验证还是使用 JWT 就足够了?

【问题讨论】:

    标签: node.js express authentication oauth jwt


    【解决方案1】:

    首先,OAuth 和 JWT 是不同的。

    • OAuth 是一种授权协议,它指定令牌的传输方式。
    • JWT 是一个身份验证令牌,它是一个“对象”,其内容是一个包含用户数据、颁发者、到期时间等的编码“结构”。它允许以可以验证和信任的方式在各方之间传输数据,因为它是数字签名的。它还允许无状态身份验证,因为与服务器通信所需的数据是自包含在该单个令牌中的。

    要回答您的问题,这完全取决于您的用例。如果您的应用程序只是小规模使用,而您只需要使用无状态 API,则最好使用 JWT,因为它更容易实现,从而可以缩短开发时间。如果您的应用程序被大规模使用,为各方提供各种敏感数据,我认为使用 OAuth 会更好。

    它们都是安全的,如 RFC 文档中所示。

    请记住,使用 OAuth 可能会导致更长的开发时间,因为它也比普通的 JWT 更难理解。 OAuth 令牌也不必是 JWT,因为默认令牌格式未定义,但 JWT 是常用的一种,它应该可以正常工作。

    进一步阅读:

    【讨论】:

    • 感谢您的精彩解释,我已经阅读了大量与此相关的文章。是的,这是不同的,但是 JWT 可以处理多客户端身份验证吗?我的应用程序基本上就像论坛,用户可以发布和评论
    • 当然。 JWT 可以很好地处理多客户端身份验证,因为它是无状态的。如果我是你,我也会使用 JWT。对于论坛应用程序来说已经绰绰有余了。
    • 嗨@Nicholas,我需要实现的另一个要求是使用 facebook 或 google 登录,你有什么建议我应该使用什么? *firebase/auth0/oauth2
    • 以我的拙见,Firebase 应该没问题。不是大型应用程序,对吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 2016-11-01
    • 2012-09-22
    • 1970-01-01
    • 2012-12-23
    • 2021-07-13
    相关资源
    最近更新 更多