问题标签 [doorkeeper]
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.
ruby-on-rails - Doorkeeper 将资源服务器与授权服务器分开
我正在使用Doorkeeper在 ruby on rails 中构建一个 ouath 2.0 系统。我的资源服务器受 doorkeeper_for 方法保护,与授权服务器分开,我使用的是隐式授权流程。所以我从身份验证服务器获取访问令牌,然后以这种方式向资源服务器发出请求: localhsot:3000/pages?access_token=XXXX 但是当资源服务器读取访问令牌时,它会尝试在其中查找令牌自己的数据库,而不是在身份验证服务器数据库中,所以我收到 401 Unautorized 错误。我该如何解决这个问题?
ruby-on-rails - use_doorkeeper 在范围路由中使用时会导致问题
我正在将门卫升级到 6.7,但我对 use_doorkeeper 有疑问:
我按照迁移说明进行了以下操作:
我升级前的路线:
我升级后的路线:
现在,在我看来,这一行(和其他行)出现错误:
路由错误
没有路由匹配 {:action=>"show", :controller=>"doorkeeper/applications", :locale=>#< Doorkeeper::Application id: 5, name: "My App", uid: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx... ", secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...", redirect_uri: " http://www.myapp.com ", created_at: "2013-08-26 14:33:38", updated_at: "2013-08-26 14: 33:38">}
看来门卫应用程序正在进入语言环境参数。
任何想法?
ruby-on-rails - Omniauth 定制提供商和策略,带门卫
我有一个使用Doorkeeper构建的自定义 OAuth2 提供程序(是一个 Rails 应用程序)
并拥有使用 OmniAuth 构建的自定义客户端策略
问题是当我设置它时config/initializers/devise.rb
然后我会得到这个错误:
如果我将配置更改devise.rb
为
然后一切都好...
我无法弄清楚是什么导致了这个问题。似乎问题出在 Rails 的 CSRF 保护上?
ruby-on-rails - facebook身份验证后与门卫进行身份验证
用户通过我的移动应用程序通过 facebook 进行身份验证后,如何实现正常的门卫 oauth2 流程?
PS我正在使用 doorkeeper gem 为我的移动应用程序实现 oauth2 提供程序。我使用资源所有者密码凭据流通过用户的用户名和密码来实现身份验证。
因此,如果用户首先通过移动应用程序通过 facebook 进行身份验证,我如何使用 facebook 访问令牌通过门卫对用户进行身份验证。所以在这种情况下不存在用户名/密码(哪个门卫抛出缺少参数的错误)。
实现此流程的正确方法是什么。
实施此流程的正确方法是什么?非常感谢一些正确方向的指导。
ruby-on-rails - 如何使用 OAuth2 提供者 Mongoid ORM 制作 Rails 4 API?
我试图通过将 Rails 4 API 设为OAuth2 Provider来保护它。
添加了 gem Mongoid '4.0.0'(来自 Git Repo 的主分支)以使其与 Rails 4 一起使用。
现在我希望使用Doorkeeper gem 使 API 成为 OAuth2 提供者。我猜 Doorkeeper 不支持 Mongoid 4(来源:https ://github.com/applicake/doorkeeper/issues/224 )
此外,我不能使用 Mongoid 3.1.2,因为这在 Rails 4 中不起作用。
我不喜欢使用 gem 'oauth-plugin',因为它注入了太多的样板代码。
请建议,我能做些什么来让它工作吗?
先感谢您!:-)
ruby-on-rails - 未知验证器:Rails 部署期间的“RedirectUriValidator”
我们遇到了服务器问题,因此替换 VM 启动了许多复制到新 VM(即 Ubuntu 12.04)的项目。
我正在运行 cap deploy 到服务器,一切顺利,直到 rake db:migrate 步骤,此时我得到:
** [out :: 63.247.75.161] 耙子中止!** [out :: 63.247.75.161] 未知验证器:'RedirectUriValidator' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activemodel-3.2.14 /lib/active_model/validations/validates.rb:96:in rescue in block in validates'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activemodel-3.2.14/lib/active_model/validations/validates.rb:93:in
block in validates' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activemodel-3.2 .14/lib/active_model/validations/validates.rb:90:in each'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activemodel-3.2.14/lib/active_model/validations/validates.rb:90:in
validates' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/doorkeeper-0.6 .7/lib/doorkeeper/models/application.rb:10:in <class:Application>'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/doorkeeper-0.6.7/lib/doorkeeper/models/application.rb:2:in
' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/doorkeeper-0.6。 7/lib/doorkeeper/models/application.rb:1:in<top (required)>'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in
要求'** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in block in require'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:236:in
load_dependency' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in require'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/doorkeeper-0.6.7/lib/doorkeeper/config.rb:24:in
enable_orm' ** [出:: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/doorkeeper-0.6.7/lib/doorkeeper/config.rb:10:in configure'
** [out :: 63.247.75.161] /var/www/test/releases/20131011015404/config/initializers/doorkeeper.rb:2:in
' ** [出: :63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:245:in load'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:245:in
block in load' ** [out : :63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:236:inload_dependency'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:245:in
加载'** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/engine.rb:593:in block (2 levels) in <class:Engine>'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/engine.rb:592:in
each' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/engine.rb:592:in block in <class:Engine>'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/initializable.rb:30:in
instance_exec' ** [out :: 63.247.75.161] ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/initializable.rb :30:in run'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/initializable.rb:55:in
block in run_initializers' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/initializable.rb :54:in each'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/initializable.rb:54:in
run_initializers' ** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/application.rb:136 :在initialize!'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/railtie/configurable.rb:30:in
method_missing' ** [out :: 63.247.75.161] /var/www/test/releases/20131011015404/config/environment.rb:5:in<top (required)>'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in
要求' ** [out :: 63.247.75.161] /var/www/test /shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in block in require'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:236:in
load_dependency' ** [out :: 63.247.75.161] /var/www/test/shared /bundle/ruby/1.9.1/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in require'
** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/application.rb:103:in
require_environment!** [out :: 63.247.75.161] /var/www/test/shared/bundle/ruby/1.9.1/gems/railties-3.2.14/lib/rails/application.rb:305:in `block (2 level) in initialize_tasks' ** [out :: 63.247.75.161] Tasks: TOP => db:migrate => environment ** [out :: 63.247.75.161] (通过使用 --trace 运行任务查看完整跟踪)
我尝试了几种不同的门卫,以及 ruby 1.9.2 和 1.9.3。
我不明白为什么这会突然坏掉。自上次部署以来,我已经做了很多应用程序更改,但没有围绕门卫实施。
ruby-on-rails - Rails 中带有 Doorkeeper 的自定义 401 页面
我有一个使用 Doorkeeper 的 Rails 4 应用程序,要求在大多数控制器中进行身份验证。当我去其中一条受限路线时,我看到一个空白页。我注意到在我的终端上,Puma 说:
过滤器链因 #Proc:0x007fd650803350@/.../doorkeeper-0.7.2/lib/doorkeeper/helpers/filter.rb:8 呈现或重定向而停止 401 Unauthorized in 1ms (ActiveRecord: 0.0ms)
如何捕获此类 401 Unauthorized 错误,以便显示自定义页面?我的目标是呈现 JSON 响应,其中包含有关如何进行身份验证的消息,而不仅仅是显示空白页。
ruby-on-rails - 使用 rspec_api_documentation 提取 Doorkeep 令牌
我正在使用rspec_api_documentation在 Rails 4 中构建一个 API,这给我留下了深刻的印象。选择使用 DoorKeeper 来保护我的端点后,我成功地从控制台测试了这一切,并让它正常工作。
我现在遇到的困难是如何指定它并存根令牌。
DoorKeeper 的文档建议使用以下内容:
但是,我已经根据 rspec_api_documentation 编写了验收测试。这是projects_spec.rb
我写的:
当我运行测试时,我得到以下信息:
我怀疑这是因为它不是明确的控制器规范,但正如我所说,我宁愿坚持这种 rspec_api_documentation 测试我的 API 的方式。
肯定有人必须这样做吗?还有另一种方法可以存根令牌吗?
提前致谢。
javascript - 使用来自客户端应用程序的 Doorkeeper 进行身份验证而不传输机密
我正在尝试在 Ruby on Rails API 应用程序中使用 Doorkeeper 进行身份验证。从客户端 AngularJS 应用程序,我想获得一个访问令牌。目前,这涉及到 /oauth/authorize 的 GET 请求,它给了我一个代码,然后我将该代码连同一个 client_id 和一个秘密发布到 /oauth/token。我不想从我的客户端应用程序发送客户端 ID 和密码,因为它们以纯文本形式存储在 JavaScript 文件中。我想遵循这个流程where response_type
is token
, not code
,但我不知道如何使用 Doorkeeper 做到这一点。他们的 wiki示例似乎都涉及将客户端 ID 和机密发布到 /oauth/token。
Doorkeeper 是适合这个的宝石吗?如何从客户端应用程序执行 Google OAuth2,其中没有秘密从客户端传递到服务器?
编辑:看起来我想要的是Doorkeeper 支持的 Implicit Grant 。现在我只需要找出如何在我的 Rails 应用程序中做到这一点......
ruby-on-rails - Rails 3.1 中门卫的路由问题
我正在尝试使用门卫(https://github.com/applicake/doorkeeper/)来设置一个简单的 OAuth 提供程序,但是在重命名我的路线时遇到了严重的问题。
我正在尝试将我的基本门卫路线设置为“/oauth2/v1”,而不是预先推出的“/oauth”路线。
阅读维基(https://github.com/applicake/doorkeeper/wiki/Customizing-routes)似乎我需要做的就是修改
至
或者也许命名空间 use_doorkeeper 到“oauth2”,然后提供“v1”的范围。不幸的是,没有任何效果。我根本无法让门卫使用任何其他范围。
wiki 本身似乎已经过时了,因为 Rails 不再在 routes.rb 中使用这种结构,所以我实际上试图更改的代码看起来更像这样:
但同样,似乎没有什么能够改变范围。
这是 rake 路由的输出:
看起来好像 use_doorkeeper 的 :scope 参数被忽略了。
在这一点上的任何提示将不胜感激。