【问题标题】:NodeJS - OAuth server, using both API and Access key-token/secretNodeJS - OAuth 服务器,同时使用 API 和访问密钥令牌/秘密
【发布时间】:2021-10-13 23:43:32
【问题描述】:

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

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

谁能把我放在正确的轨道上?我的概念是错误的还是可以的?如果错了,我应该走哪条路?如果是对的,我该如何实现?

非常感谢!

【问题讨论】:

    标签: node.js security oauth


    【解决方案1】:

    您提到的是三足 OAuth,它涉及 3 方(用户、客户端、Oauthserver)。在 Oauth 中,用户必须先对自己进行身份验证,然后才能向客户端授予权限。

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

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

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

    请注意关键字local。现在,您可以使用 Basic 或 Digest 策略来代替这个。在这里阅读它passport basic strategy

    我觉得你对 2 legged 和 3 legged 身份验证感到困惑。请阅读更多相关信息,并随时提出更多问题。

    【讨论】:

    • 谢谢@1234varun,我会看看并继续做测试。我会尽快报告我的测试结果。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-04-28
    • 2016-10-29
    • 2014-05-25
    • 2011-03-18
    • 2016-05-20
    • 1970-01-01
    • 2013-01-23
    • 2016-06-10
    相关资源
    最近更新 更多