【问题标题】:What's the difference between passport and oauth?护照和oauth有什么区别?
【发布时间】:2016-07-29 04:53:38
【问题描述】:

我正在尝试使用 express.js 构建身份验证服务,但我还没有掌握身份验证模块的想法。

passport 和 oauth 中间件有什么区别?它们相互依赖吗?在没有 oauth 服务器的情况下让 BearerStrategy 生成令牌以验证 BearerStrategy 是没用的吗?我走对了吗?

我已阅读有关 oAuth2 及其身份验证流程的信息,但我仍然对这个解耦代码感到迷茫。

我正在尝试使用刷新令牌为我的 AngularJS 前端与后端 API 通信构建资源所有者密码身份验证,并且我面临着许多使用 oauth2orize 的 password.js 策略(基本、承载、客户端密码)组合另一边。

所以,我想知道一个关于身份验证如何在 NodeJS 上工作的非常简单的解释。实际上,我知道 Express 并没有发明一种新的身份验证工作方式,但是这些模块太不显眼了,我需要了解它如何工作以实现它们协同工作的基础。

【问题讨论】:

    标签: node.js express oauth passport.js oauth2orize


    【解决方案1】:

    Passport 是身份验证中间件。 OAuth 是授权中间件。

    要了解区别:

    身份验证是确定某人确实是他声称的那个人的过程。

    授权是指决定谁可以做什么的规则。例如。 Bob 可能被授权创建和删除数据库,而 Bobbette 仅被授权读取。

    换句话说。身份验证是您的用户名+密码。授权是您可以做的事情。

    Passport 将允许您在允许访问您的 API 之前对用户进行身份验证。它不允许(直接,可能)检查是否允许用户在身份验证后执行操作。

    查看Wikipedia 了解有关身份验证与授权的更多信息。

    OAuth 的作用是 Passport 没有,它允许用户授予服务访问其个人信息的权限。它还允许用户允许或禁止某些特权(OAuth 中的范围)。

    请注意,有很多 OAuth 风格。最常见的是在使用 Facebook 或 Google 进行授权时看到的具有授权类型的版本。但是还有很多其他的,包括你提到的资源所有者密码策略。

    【讨论】:

    • 谢谢你!我从来没有注意到像身份验证和授权之间的区别这样微不足道的事情!你到了我怀疑的地方!再次感谢! ;)
    猜你喜欢
    • 2019-01-29
    • 2011-08-04
    • 2011-03-20
    • 2012-12-11
    • 2016-08-06
    • 2019-04-18
    • 2013-06-28
    • 2020-01-23
    • 2010-10-31
    相关资源
    最近更新 更多