问题标签 [oauth2orize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
164 浏览

node.js - 如何为手机号码和安全密码实施 oauth2orize 新交换策略

如何实施自定义交换政策。

我想为手机号码和安全密码生成令牌,如客户端密码策略

0 投票
0 回答
614 浏览

express - oauth2orize redirect_uri 问题

我正在尝试自定义 oauth2orize all-grants 示例以供我使用。我可以按原样运行所有授权,并且一切正常(如您所料),但是当我运行我的自定义版本时,我总是会遇到以下错误:

我已经对此进行了深入研究,似乎该函数中有一个 txn 变量的属性,该属性应命名为 redirectURI ,并且应使用从初始请求到 /dialog/authorize 页面的查询字符串中的 redirect_uri 填充. 出于某种原因,这不会发生在我的示例应用程序上。这是由快递版本差异引起的吗?这是我在示例代码和我的自定义项之间看到的最大区别。all-grants 使用 express 2.*,我的应用程序将使用 express 4.*。

如果不是快速版本问题,我应该从哪里开始在我的代码中查找问题?

作为参考,这是我在我的应用程序中看到的 txn 对象:

这就是我在与示例相同的对象中看到的内容(注意 req 和 txn 本身中存在 redirectURI):

0 投票
0 回答
301 浏览

javascript - OAuth2基本策略和密码grant_type

我正在使用 BasicStrategy 和 grant_type=password 使用 oauth2orize 开发应用程序,我在这部分代码中遇到了一些问题:

在这段代码中(取自 git 示例),我测试了客户端凭据和用户凭据之间的相等性(用户名 + 客户端 ID,用户密码和客户端密码)

这意味着每个客户端应用程序只能有一个用户。

我不希望每个应用程序只有一个用户。事实上,许多用户可以连接同一个应用程序(在凭证级别)、共享内容等......

我不知道如何在这个策略中实施这个?

我认为我在有关“应用程序”术语的过程中误解了一些东西......

0 投票
2 回答
984 浏览

node.js - 实现自己的 oauth2 服务器和 api 服务器

我们正在尝试实现 oauth 2 服务器和 api 服务器(两者都是不同的服务器)。(全部使用nodejs)

在此处输入图像描述

我们正在使用https://github.com/FrankHassanabad/Oauth2orizeRecipes授权代码流程

我们是否需要在 oauth 服务器中编写新的 validateToken函数,然后从 api 端点击它来仅验证该用户。

我们正在考虑将用户和角色保留在 oauth 端,但在给出 api 调用响应之前,我们需要在 api 端检查它们。

我们正在尝试将其用于身份验证目的以及用于 cms 和移动应用程序。我们是在正确的轨道上还是错过了什么。

0 投票
1 回答
8078 浏览

node.js - 护照和oauth有什么区别?

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

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

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

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

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

0 投票
1 回答
493 浏览

node.js - 如何在 hapijs 中实现 oauth2orize

我在 hapijs 中实现了 oauth2orize。但是当我调用 api 时,什么也没有发生。该函数进入 oauth2orize 模块的 code.js 文件并挂在两者之间。请建议我如何在 hapjs 中实现 oauth2orize。hapi-oauth2orize 也无法正常工作,因为移民和 hapi-oauth2orize 插件会引发选项错误。

0 投票
1 回答
174 浏览

ifttt - 以编程方式为测试用户生成 oauth2orize 访问令牌?

如何在不强制客户端通过重定向/身份验证的情况下生成可用的(实时的、经过身份验证的)访问令牌?

我正在使用 node/express/oauth2orize 构建一个 IFTTT 频道。IFTTT 要求端点可以生成测试用户test/setup。我需要返回一个可用于后续测试的访问令牌。

0 投票
1 回答
856 浏览

node.js - 如何在我的 SPA 加载期间验证和更新 JWT id_token?

我很陌生OAuth 2.0OpenID Connect而且我很难理解流程的某些部分(或者我应该使用哪些最佳实践)......

很抱歉这篇冗长的帖子:)

我的设置:

  1. 一个OP(OpenID 提供者),它基本上是一个express使用oauth2orize-openidpassport验证和授权用户的服务器。让我们称之为http://authserver.com

  2. 一个Single page application(react+webpack)需要针对 my 对用户进行身份验证OP,我们称之为http://my-spa.com

因为它是一个 SPA(由 webpack 静态提供),所以我必须使用Implicit Flow.

我的问题

一旦用户导航到http://my-spa.com,应用程序被加载,然后它检查localStorage是否id_token存在。

没有id_token加载localStorage

  1. 由于没有令牌,我重定向到http://authserver.com/dialog/authorize
    • response_type=id_token
    • scope=openid profile
  2. 用户成功认证和授权后,使用URI 片段中的authserver重定向回my-spaid_token
  3. 我将其存储在id_tokenlocalStorage,用户可以开始使用该应用程序。

有负载id_token_localStorage

用户关闭浏览器并再次打开。这是我很难理解该怎么做的地方。由于已经有一个令牌(来自以前的登录),我需要检查它是否有效。

这样做的最佳做法是什么?这是我认为正确的:

  1. 重定向到http://authserver.com/dialog/authorize使用:
    • prompt=none
    • id_token_hint=CURRENT_TOKEN
  2. 一旦OP收到此请求,它应该验证 JWT 签名,尝试自动批准用户并使用新的 JWT 重定向回来。

令牌在一段时间后过期

假设一个登录用户的 JWT 过期了,它什么时候应该要求一个新的?什么应该触发更新?

/tokeninfo或者是为了什么/userinfo

据我了解,JWT 存储了识别用户所需的所有数据。但是,我已经看到了调用/tokeninfoor的示例/userinfo

如果我已经有了subid,这些端点是否只是用于验证令牌(假设我只需要主题的 id)?

JWT 签名验证

除了OP, 是否应该my-spa验证 JWT 签名(可能使用公钥)?

重新使用此令牌来访问第三个服务的 REST API

如果我有另一个 Web 服务 api,调用它http://my-service.com/api需要知道哪个用户从我的 SPA 调用它,这些是我认为我需要执行的步骤:

  1. id_token作为Bearer令牌添加到每个 ajax 请求
  2. my-service.com应该验证 JWT 签名(使用公钥?)并决定是允许还是拒绝访问受保护的资源

任何帮助将不胜感激!

0 投票
0 回答
714 浏览

javascript - 使用 Oauth2 以编程方式登录 nodebb

所以我正在用 nodejs 设计一个应用程序,我需要创建一个用户论坛。我决定不重新发明轮子,所以我选择使用 nodebb。但是,我的应用程序有一个用户登录,节点 bb 也是如此,我希望用户在登录我的站点后自动登录到 nodebb。我以前从未使用过 oauth2orize ,但这就是我想出的:

这是我的 oauth2orize 代码块,它在邮递员上运行良好。

但是,这是我应该编辑和使用的 nodebb 上的插件。我已经编辑了它,我现在真的很难过。

根据我对其工作原理的理解:nodebb 调用我的授权端点,我检查客户端是否正确并授予它访问代码,然后它访问我的令牌端点并将此访问代码交换为令牌。我将它带到用户端点并将我的用户凭据交给它以登录。我认为我错了,因为它不起作用,我认为问题可能来自名称:我正在使用的 create-and-login-user但我看不到如何改进我上面写的代码。

我不清楚回调 uri 的作用,为什么将名称回调附加到它,以及我的应用程序上是否必须有此 url 的端点。

好的,我取得了一些进展,但我遇到了这个错误:

https://www.dropbox.com/s/hm711i99iex4v1x/Screenshot%202017-02-13%2021.57.07.png?dl=0

它与回调 uri 有关。我是否应该为它提供一个端点,如果是,为什么它不指向我的应用程序端口号,而是指向 nodebb 的端口号

0 投票
2 回答
2236 浏览

javascript - oauth2-server 实现 nodejs

我正在尝试在nodeJS中实现一个OAUTH2服务器,它允许客户端应用程序使用我的网站登录用户(比如用谷歌登录,在我的例子中是amazon alexa,它使用这个API/客户端应用程序)。
我尝试使用 oauth2orise(https://www.npmjs.com/package/oauth2orize)并引用了一些链接:-


提前致谢。