NodeJS - OAuth服务器,使用API​​和Access密钥令牌/机密

时间:2014-03-11 16:26:23

标签: node.js security oauth

我正在尝试使用NodeJS构建OAuth 1服务器。我正在使用Jared Hanson的oauthorize,但我无法弄清楚如何使用这两套凭据。在Jared提供的示例中,我可以找到将用户重定向到页面并授权访问应用程序的流程,但在我的情况下,我没有用户交互。我有一个外部服务需要在我的NodeJS服务器上使用一些服务。因此,据我所知,外部服务需要一个API密钥和密钥来在我的NodeJS服务中标识自己,之后,它需要访问令牌/密钥(客户端)密钥来代表我的NodeJS服务器上的某些人执行操作。

我见过的所有示例都将请求者重定向到一个网页以授权访问,但正如我之前所说,在我的情况下,没有用户交互,所以我陷入了如何继续。

有谁能请我走上正轨?我的概念错了还是没问题?如果这是错的,我应该遵循什么样的路径呢?如果是的话,我该如何实施呢?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您提到的是三方OAuth,涉及3方(用户,客户,Oauth服务器)。在Oauth用户可以向客户端授予权限之前,它必须首先验证自己。

正如您所提到的,您不希望为用户进行基于Web的身份验证。这是你可以做的。 Oauthorize使用护照库来处理身份验证。

passport允许使用不同的方法进行身份验证,它们被称为策略,Jared的示例使用local-strategy。这是代码片段

exports.login = passport.authenticate('local', { successReturnToOrRedirect: '/', failureRedirect: '/login' });

请注意关键字local。现在,您可以使用基本或摘要策略代替此操作。在这里阅读passport basic strategy

我觉得你在2腿和3腿认证之间感到困惑。请阅读更多相关信息,随时提出更多问题。