问题标签 [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.
node.js - 如何为手机号码和安全密码实施 oauth2orize 新交换策略
如何实施自定义交换政策。
我想为手机号码和安全密码生成令牌,如客户端密码策略
express - oauth2orize redirect_uri 问题
我正在尝试自定义 oauth2orize all-grants 示例以供我使用。我可以按原样运行所有授权,并且一切正常(如您所料),但是当我运行我的自定义版本时,我总是会遇到以下错误:
我已经对此进行了深入研究,似乎该函数中有一个 txn 变量的属性,该属性应命名为 redirectURI ,并且应使用从初始请求到 /dialog/authorize 页面的查询字符串中的 redirect_uri 填充. 出于某种原因,这不会发生在我的示例应用程序上。这是由快递版本差异引起的吗?这是我在示例代码和我的自定义项之间看到的最大区别。all-grants 使用 express 2.*,我的应用程序将使用 express 4.*。
如果不是快速版本问题,我应该从哪里开始在我的代码中查找问题?
作为参考,这是我在我的应用程序中看到的 txn 对象:
这就是我在与示例相同的对象中看到的内容(注意 req 和 txn 本身中存在 redirectURI):
javascript - OAuth2基本策略和密码grant_type
我正在使用 BasicStrategy 和 grant_type=password 使用 oauth2orize 开发应用程序,我在这部分代码中遇到了一些问题:
在这段代码中(取自 git 示例),我测试了客户端凭据和用户凭据之间的相等性(用户名 + 客户端 ID,用户密码和客户端密码)
这意味着每个客户端应用程序只能有一个用户。
我不希望每个应用程序只有一个用户。事实上,许多用户可以连接同一个应用程序(在凭证级别)、共享内容等......
我不知道如何在这个策略中实施这个?
我认为我在有关“应用程序”术语的过程中误解了一些东西......
node.js - 实现自己的 oauth2 服务器和 api 服务器
我们正在尝试实现 oauth 2 服务器和 api 服务器(两者都是不同的服务器)。(全部使用nodejs)
我们正在使用https://github.com/FrankHassanabad/Oauth2orizeRecipes授权代码流程
我们是否需要在 oauth 服务器中编写新的 validateToken函数,然后从 api 端点击它来仅验证该用户。
我们正在考虑将用户和角色保留在 oauth 端,但在给出 api 调用响应之前,我们需要在 api 端检查它们。
我们正在尝试将其用于身份验证目的以及用于 cms 和移动应用程序。我们是在正确的轨道上还是错过了什么。
node.js - 护照和oauth有什么区别?
我正在尝试使用 express.js 构建身份验证服务,但我还没有掌握身份验证模块的想法。
护照和oauth中间件有什么区别?它们相互依赖吗?在没有 oauth 服务器的情况下让 BearerStrategy 生成令牌以验证 BearerStrategy 是没用的吗?我走对了吗?
我已经阅读了关于 oAuth2 及其身份验证流程的信息,但我仍然对这个解耦代码感到迷茫。
我正在尝试使用刷新令牌为我的 AngularJS 前端与后端 API 通信构建资源所有者密码身份验证,并且我面临着许多 password.js 策略(Basic、Bearer、ClientPassword)的组合与 oauth2orize 在另一边.
所以,我想知道一个关于身份验证如何在 NodeJS 上工作的非常简单的解释。实际上,我知道 Express 并没有发明一种新的身份验证方式,但是这些模块太不显眼了,我需要了解它如何工作以实现它们协同工作的基础。
node.js - 如何在 hapijs 中实现 oauth2orize
我在 hapijs 中实现了 oauth2orize。但是当我调用 api 时,什么也没有发生。该函数进入 oauth2orize 模块的 code.js 文件并挂在两者之间。请建议我如何在 hapjs 中实现 oauth2orize。hapi-oauth2orize 也无法正常工作,因为移民和 hapi-oauth2orize 插件会引发选项错误。
ifttt - 以编程方式为测试用户生成 oauth2orize 访问令牌?
如何在不强制客户端通过重定向/身份验证的情况下生成可用的(实时的、经过身份验证的)访问令牌?
我正在使用 node/express/oauth2orize 构建一个 IFTTT 频道。IFTTT 要求端点可以生成测试用户test/setup
。我需要返回一个可用于后续测试的访问令牌。
node.js - 如何在我的 SPA 加载期间验证和更新 JWT id_token?
我很陌生OAuth 2.0
,OpenID Connect
而且我很难理解流程的某些部分(或者我应该使用哪些最佳实践)......
很抱歉这篇冗长的帖子:)
我的设置:
一个
OP
(OpenID 提供者),它基本上是一个express
使用oauth2orize-openid
并passport
验证和授权用户的服务器。让我们称之为http://authserver.com
一个
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
:
- 由于没有令牌,我重定向到
http://authserver.com/dialog/authorize
response_type=id_token
scope=openid profile
- 用户成功认证和授权后,使用URI 片段中的
authserver
重定向回my-spa
id_token
- 我将其存储在
id_token
中localStorage
,用户可以开始使用该应用程序。
有负载id_token
_localStorage
用户关闭浏览器并再次打开。这是我很难理解该怎么做的地方。由于已经有一个令牌(来自以前的登录),我需要检查它是否有效。
这样做的最佳做法是什么?这是我认为正确的:
- 重定向到
http://authserver.com/dialog/authorize
使用:prompt=none
id_token_hint=CURRENT_TOKEN
- 一旦
OP
收到此请求,它应该验证 JWT 签名,尝试自动批准用户并使用新的 JWT 重定向回来。
令牌在一段时间后过期
假设一个登录用户的 JWT 过期了,它什么时候应该要求一个新的?什么应该触发更新?
/tokeninfo
或者是为了什么/userinfo
?
据我了解,JWT 存储了识别用户所需的所有数据。但是,我已经看到了调用/tokeninfo
or的示例/userinfo
。
如果我已经有了sub
id,这些端点是否只是用于验证令牌(假设我只需要主题的 id)?
JWT 签名验证
除了OP
, 是否应该my-spa
验证 JWT 签名(可能使用公钥)?
重新使用此令牌来访问第三个服务的 REST API
如果我有另一个 Web 服务 api,调用它http://my-service.com/api
需要知道哪个用户从我的 SPA 调用它,这些是我认为我需要执行的步骤:
- 将
id_token
作为Bearer
令牌添加到每个 ajax 请求 my-service.com
应该验证 JWT 签名(使用公钥?)并决定是允许还是拒绝访问受保护的资源
任何帮助将不胜感激!
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 的端口号
javascript - oauth2-server 实现 nodejs
我正在尝试在nodeJS中实现一个OAUTH2服务器,它允许客户端应用程序使用我的网站登录用户(比如用谷歌登录,在我的例子中是amazon alexa,它使用这个API/客户端应用程序)。
我尝试使用 oauth2orise(https://www.npmjs.com/package/oauth2orize)并引用了一些链接:-
- https://hnryjms.io/2014/07/oauth2/
- http://scottksmith.com/blog/2014/07/02/beer-locker-building-a-restful-api-with-node-oauth2-server/
但我仍然无法理解方法是如何得到的调用以及我应该如何实现流程。
因此,如果有人可以解释如何实现这将是有帮助的。
提前致谢。