护照和oauth有什么区别?

我正在尝试使用express.js构build一个身份validation服务,但是我还没有注意到身份validation模块的想法。

护照和oauth中间件有什么区别? 他们是相互依赖的吗? 没有oauth服务器生成令牌到BearerStrategyvalidation是没有用的BearerStrategy? 我是否正确?

我已经阅读了oAuth2及其身份validationstream程,但是我仍然失去了这个非耦合的代码。

我试图build立资源所有者密码authentication与刷新令牌我的AngularJS前端与后端API通信,我面临的密码.js策略(基本,承载,ClientPassword)与oauth2orize在另一端的许多组合。

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

护照是身份validation中间件。 OAuth是授权中间件。

要了解差异:

authentication是确定有人确实是他自称的人的过程。

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

换一种说法。 身份validation是您的用户名和密码。 授权是你可以做的。

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

有关身份validation与授权的更多信息,请查看此维基百科 。

Passport没有做什么OAuth,它允许用户授予服务访问他们的个人信息。 它还允许用户允许或禁止某些特权(OAuth中的范围 )。

请注意,有很多的OAuth口味。 最常见的是授权Facebook或Google时授权types的版本。 但是还有很多其他的,包括你提到的资源所有者密码策略。