问题标签 [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 - 自己的移动客户端的 OAuth 2.0 身份验证
我正在使用 node.js 开发一个应用程序,它也将有一个移动客户端。我希望使用 OAuth 2.0 进行身份验证。有什么好的模块可以让我拥有 OAuth 2.0 身份验证服务器吗?
我查看了 Passport 的一个子模块“OAuth2orize”。我发现它已经足够好了,但真正的问题是了解它将如何为我自己的应用程序工作(示例和文档指定了第三方授权)。
基本上我想要的是客户端使用客户端 ID、用户名、用户密码登录,然后我在验证上述三件事后给他一个令牌。但是 Oauth2orize 的问题在于有重定向 URI,这让我很困惑。
请帮助我了解如何使用 Oauth2rize 或任何其他非常好的模块来实现这一点。或者,如果它足够简单,我也可以自己动手,但这对安全性来说是个好主意吗?
node.js - 使用 OAuth2 保护 nodejs/sailsjs API
我用sailsjs 开发了一个REST API,我想添加OAuth2 授权来保护这个API。我对 OAuth 很陌生,我不知道从哪里开始。
我发现了几个可用于此目的的模块,例如 oauth2orize 及其用法示例https://github.com/aaron524/sails-oauth2-provider-example但我不完全理解这是如何在内部工作的。
基本上,我将有几个客户端使用我正在开发的 API: - 我信任的客户端,我想与“资源所有者凭据授权”一起使用 - 我不信任的客户端,将使用连接授权码流程
我正在考虑在sails应用程序中向客户端模型添加一个受信任的属性,然后当用户登录应用程序时: - 他将直接访问其资源(受信任应用程序的情况) - 他将被要求批准或拒绝应用程序访问他的资源(不受信任的应用程序的情况)
这是一个好方法吗?关于如何根据客户信任级别选择相应策略的任何指示?
更新
我使用我找到的几个教程和项目在 GitHub 上设置了以下项目。
这个项目还没有功能。
当用户通过应用程序使用 API 时,我仍然不清楚如何选择正确的授权类型(授权码与资源所有者的密码)。如何将此检查集成到政策中?
我没有设法在 OAuth 端点(/oauth/authorize、/oauth/token)和对 oauth2orize 的调用之间创建链接。任何想法 ?
node.js - OAuth2orize 登录流程无限循环
希望为我的网站设置 OAuth2 端点。我在 OAuth 服务器上使用 OAuth2orize,在客户端服务器上使用 passport-oauth。
我几乎逐字逐句地使用oauth2orize 示例来使其首先工作。
当我开始登录流程时,它会将我发送到登录页面(到目前为止很好),我登录并将我发送到对话框(也很好),然后当我单击允许时,它只是将我循环回到相同的页面一遍又一遍地翻页(允许/拒绝对话框)。
有人知道我做错了什么吗?我知道它实际上是把我送回我的应用程序(使用代码,我的应用程序应该交换一个令牌),但它似乎只是让我回到对话框:
javascript - 围绕 oauth2 以及应该存储 access_token 和 refresh_token 的位置感到困惑
对如何保护此设置有更深入的了解会很棒:
Node.js / ExpressJS / Oauth2orize 受 oauth2 保护并托管在
api.domain.com
domain.com
通过 Node.js / ExpressJS 服务器托管的 Backbone.js 应用程序
目前发生以下情况:
1 - 用户在浏览器中访问应用程序,提供用户名和密码,这些被发布到包装器 ( domain.com/login
)
2 - 包装器使用 client_id 和 client_secret 扩充用户名和密码,并将这些连同用户名和密码一起传递到api.domain.com/oauth/token
. 这是为了保证 client_id 和 client_secret 的安全,而不仅仅是在 javascript 应用程序中直接处理 api。此过程仅用于身份验证,一旦存在令牌,则计划是让 JS 客户端直接与 api 通信。
3 - api.domain.com/oauth/token 检查用户和密码凭据,如果凭据通过,则发出 refresh_token 和 access_token,或者返回 401
4 - 包括 refresh_token 和 access_token 的令牌响应作为对domain.com/login
请求的响应返回给 javascript 应用程序。当前,JavaScript 客户端处理设置授权标头并使用 refresh_token 获取新的 access_tokens。
我有几个问题:
首先,我对access_token和refresh_token感到困惑,我怀疑我根本不应该将refresh_token传递给浏览器-是否应该将其缓存在代理上并通过代理执行刷新?或者将 refresh_token 传递给 Javascript 应用程序是否可以?
将 access_token 或 refresh_token 缓存在浏览器中是否可以?例如 cookie 或本地存储。如果是这样,这如何安全?如果没有,用户在刷新浏览器时是否必须重新进行身份验证?
如果有人可以说明在处理包装服务器和 JavaScript 应用程序中的 refresh_token 和 access_token 方面采取的“正确”步骤,那将不胜感激。
node.js - 使用 OAuth2 保护 nodejs 应用程序,不会自动重定向到允许/拒绝页面
我已经建立了一个项目来保护使用 OAuth2 的 Sails 应用程序:https ://github.com/lucj/sails-oauth2-api
我无法解决授权代码授予的问题。
基本上,这是我遵循的步骤:
- 运行 Sails 应用程序
- 运行 unTrustedClient(示例文件夹中的节点 untrustedClient.js)
- 从 Web 浏览器,然后发出以下 URL:
注意:client_id 的值是应用程序启动时在sails 终端中为untrustedTestClient 显示的值
这会将我重定向到“登录”页面,这很好。
https://dl.dropboxusercontent.com/u/2330187/login.png
但是,当我提交凭据(默认为 me@gmail.com /password)时,我被重定向到 /index 而不是原始 URL(上面的那个)。
https://dl.dropboxusercontent.com/u/2330187/index.png
我需要重新发布上面的 URL 以显示对话框页面(带有允许/拒绝选项的页面)。
https://dl.dropboxusercontent.com/u/2330187/allow_deny.png
我正在使用“connect-ensure-login”中间件。
我该如何解决这个问题,以便在我输入凭据后自动完成重定向?
node.js - 在 grant_type=password (oauth2orize) 上未定义 client_id
我正在使用 oauth2orize 和护照在 nodejs 中创建一个 API,但是当我请求令牌时,client_id 参数未定义。
授权:
邮政:
为什么客户端参数未定义?
非常感谢
oauth-2.0 - oauth2orize 示例返回 AuthorizationError: not authorized
我已经下载了oauth2orize 提供程序代码示例和文档中建议的示例 oauth 客户端,但出现以下错误:
500 AuthorizationError: 在 /Users/trevorallred 验证时未授权 (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/middleware/authorization.js:131:36) /projects/pics/node-soa/oauth2orize/examples/all-grants/oauth2.js:180:14 在 Object.exports.findByClientId (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all- grants/db/clients.js:24:10) 在exports.authorization.res.render.transactionID (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/oauth2.js:174: 16) 在 /Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/middleware/authorization.js:167:9 在通过 (/Users/trevorallred/projects/pics /node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/server.js:262:26) 通过 (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/server.js:280:9) 在通过 (/Users/trevorallred/projects/ pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/server.js:271:11) 在 Server._parse (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/ all-grants/node_modules/oauth2orize/lib/server.js:285:5) 在授权 (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/middleware/授权.js:118:12)_parse (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/server.js:285:5) 在授权 (/Users/trevorallred/projects/pics/node -soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/middleware/authorization.js:118:12)_parse (/Users/trevorallred/projects/pics/node-soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/server.js:285:5) 在授权 (/Users/trevorallred/projects/pics/node -soa/oauth2orize/examples/all-grants/node_modules/oauth2orize/lib/middleware/authorization.js:118:12)
我在这里运行客户端:http://localhost:3002/
我单击“与 example-oauth2orize 连接”的链接
它将我重定向到提供者:http://localhost:3000/login
使用“bob”登录后,我被发送到此错误页面。
我所做的唯一修改是示例客户端中的 oauth-config.js。
在看到这个错误报告后,我尝试修改 oauth-consumer-config.js,但它似乎没有改变任何行为。
strongloop - 为什么 loopback-component-oauth2 完全包含 oauth2orize 的源代码?
我正在测试环回组件以使用它来制作我的产品。目前,loopback-component-oauth2 在其源目录中有oauth2orize源代码。如您所知,oauth2orize是一个实现 oauth2 协议细节的节点库。我认为 loopback-component-oauth2 只需require('oauth2orize')
使用oauth2orize库就足够了。将oauth2orize源代码包含到“loopback-component-oauth2”中是否有任何具体原因?
提前致谢。
angularjs - Angular + Node + Express + Passport + oauth2orize 独特的 CORS 问题
我已经构建了一个用于本地身份验证和 Facebook 身份验证的 API。
我正在使用node、express、passport和oauth2orize进行授权过程。
我现在通过终端应用程序和 API 测试套件完美地运行 API,但是,当从 Angular 调用我的身份验证端点时,我收到以下信息:
本地认证:
脸书认证:
我过去遇到过 CORS 问题,并集成了https://www.npmjs.com/package/cors上的npm ' cors ' 中间件模块
CORS 初始化:
对于我之前的问题,这已经足够了,但是,对于这些新的 CORS 问题,它没有帮助。
我还注意到,在 Firefox 中,如果我单击错误消息,则会打开一个新的对话框窗口,并且服务器会继续正确授权用户。
有人可以帮忙吗?
更新 1:
检查评论以获取调试信息的屏幕截图。
更新 2:
登录流程中执行的最后 2 个请求的响应标头。
204:
/li>302:
/li>
node.js - 使用 Scopes 保护 API(oauth2orize、passport、express、Nodejs)
我正在尝试使用 node/express 创建一个 API,并使用 Passport 和 oauth2orize 保护它。我已经让 API 正常工作,我已经让 oauth2 工作正常,但我似乎无法弄清楚如何使用范围实现保护 API 方法。
oauth2orize 令牌hander-outer:
护照持有人令牌检查器:
API 安全性:
我找不到访问通过passport.authenticate 传递给passport.use 的“范围”选项的示例。我以为它在 req 对象中,但我在其中找不到它。有什么帮助吗?