问题标签 [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.

0 投票
1 回答
354 浏览

ruby-on-rails-4 - current_user nil 值未定义在视图 ruby​​ on rails doorkeeper gem

使用会话数据更新

pastebin.com/nGGriw7e


我有一个从应用程序控制器继承的竞赛控制器

我们正在使用门卫宝石。

在应用程序控制器中,我们定义了 current_user 并将其设置为辅助方法

我正在点击命中的/contests网址contest#edit controller

在这个edit.html.erb中,我在渲染编辑内容之前先渲染一个侧面导航部分

这是服务器日志

在更好的错误中,我让@current_user 为零

这是没有意义的。我已登录,甚至将此特定用户设置为role = "admin" inside rails c.

0 投票
0 回答
501 浏览

android - Android facebook sdk 与 rails gem 门卫或设计

关于使用 json 设计应用程序(android)和服务器(rails-api gem)之间的连接,我有一个更结构化的问题。它应该使用 facebook 作为身份验证,然后通过令牌处理连接流。

我计划的解决方案如下所示:

  1. 我打算使用 facebook sdk(客户端)来获取 facebook 访问令牌。
    a)我应该使用客户端吗?我正在考虑它,因为我的服务器不会完成该请求。但是访问令牌可信吗?

  2. 之后我将访问令牌发送到我的服务器并使用 facebook graph api 检查它

  3. 如果令牌正确,我将使用来自 facebook graph api 的信息创建一个新用户

  4. 接下来我使用门卫来创建一个 oauth 提供者。客户端获得了一个 oauth2 访问令牌,用于与服务器通信……
    a) 我应该使用另一个身份验证 gem 吗?或者我应该使用 facebook 访问令牌作为普通身份验证令牌?
    b) 我不确定我应该使用门卫还是设计。看门人够吗?我在某处读到您应该将门卫用于 api 并为普通网站设计。
    c)我没有从 oauth2 获得隐式授权。我应该在这里考虑吗?

感谢我们的帮助:)

0 投票
1 回答
1343 浏览

ruby-on-rails - Doorkeeper - 跳过授权步骤

我正在构建一个 Chrome 扩展程序,它使用 Doorkeeper gem(版本 1.4.0)通过 OAuth 访问我的 Rails API。在该 gem 的文档中,它提供了非常清晰的说明,说明如何让提供程序应用程序在新用户尝试使用 Chrome 扩展程序时跳过“授权应用程序”。只需将其添加到初始化程序中:

但我按照说明进行操作,没有任何变化。它仍然要求用户授权应用程序。我在这里有什么明显的遗漏吗?这是我的 /initializers/doorkeeper.rb

(其他所有内容都被注释掉了。)

我正在使用 Chrome Identity api 从 Chrome 扩展程序访问 OAuth,目前正在使用在 localhost 上运行的提供程序应用程序进行测试。有没有其他人有这个问题?有没有我错过的步骤?

0 投票
1 回答
1306 浏览

ruby-on-rails - 无法为创建方法跳过 Doorkeeper 身份验证

我正在尝试通过 API 在我的应用上创建用户帐户。在我的 API 控制器的顶部,我向 doorkeeper_for 添加了一个异常,以便可以由具有令牌的人运行 create:

doorkeeper_for :all, unless: :create

当我调用 API 时,我收到 401 错误和令牌无效的消息。显然它忽略了除非:异常。任何想法为什么?

0 投票
2 回答
621 浏览

ruby-on-rails - Doorkeeper - 如果用户不是管理员,则拒绝访问令牌请求

使用密码授予 OAuth-2 流程,如果非管理员用户请求访问令牌,scope: 'admin'我希望能够拒绝这种情况的发生 - 我正在使用带有设计的门卫。

目前,任何老用户都可以请求任何范围,默认情况下它会被授予。

我没有看到门卫有明显的钩子来执行这种逻辑。我应该在哪里/如何配置它?

0 投票
1 回答
3833 浏览

ruby-on-rails - Oauth2 提供者(Doorkeeper?)作为 Oauth2 消费者(Devise+OmniAuth)进行登录

Oauth2 让我发疯。

目前,我的 Rails 应用程序通过 Facebook 和其他 Oauth2 提供商对用户进行身份验证,这要归功于 Devise 和 OmniAuth 的美感。用户无法使用登录名和密码登录。

但由于我的应用程序主要是一个 API,我还希望它充当 Oauth2 提供者,以保护数据。

因此,用户使用 Facebook 登录 -> 我的应用程序获取访问令牌,然后 -> 为用户提供新的访问令牌以访问我的 API -> 我的 AngularJS 应用程序(或任何其他应用程序)使用此令牌访问我的 API在不知道 Facebook 或 Google 访问令牌的情况下。看起来我需要使用自定义提供程序将 Oauth2 令牌转发给客户端。

我发现了门卫宝石……但我不明白如何用 Devise & Omniauth 来表达它。

我在这里找到了许多部分答案,但不是完整的。

我将不胜感激任何帮助,好的教程或更完整的答案。

0 投票
2 回答
1150 浏览

ruby-on-rails-4 - Doorkeeper 中的 NoMethodError::AuthorizationsController#new - Doorkeeper

我使用不同的流程与门卫玩耍。我尝试使用密码流、客户端凭据流成功,但使用授权代码流时出现以下错误:

当我单击授权按钮时,如下所示:点击授权按钮

错误页面:

在此处输入图像描述

请帮忙

0 投票
2 回答
2308 浏览

ruby-on-rails - 使用门卫验证葡萄 api

我目前在我的 Rails 应用程序中配置了 Devise、Doorkeeper 和葡萄。配置了 Devise 和 Doorkeeper,以便我可以在网站上注册和登录 Devise,并且 Doorkeeper 提供可以创建令牌的 oAuth 端点。

如何将令牌添加到 HttpRequest 并用它保护葡萄 API?

编辑:所以我尝试实现 Tom Hert 建议的 Winebouncer 实现。我按照https://github.com/antek-drzewiecki/wine_bouncer上的说明进行操作

我已经安装了宝石。我已将 config/initializers/wine_bouncer.rb 定义如下。

我已在我的基本 api 控制器中将 Winebouncer 注册为葡萄中的中间件。应用\控制器\api\base.rb

我将我的项目控制器安装在我的 V1 基本控制器 app\controllers\api\v1\base.rb

这是我的项目控制器 app\controllers\api\v1\projects.rb

老实说,我还不知道描述中的“, auth: { scopes: [] }” 应该如何工作。以及如何将令牌添加到请求中,但我希望我的请求在没有添加令牌时被阻止。但请求仍在产生 json 数据。

0 投票
1 回答
672 浏览

ruby-on-rails - 以其他用户身份登录(伪装)

我已经构建了一个具有 RubyOnRail 后端(Restful Oauth API)的。我正在使用门卫进行oauth。我希望能够使用某种“超级密码”以另一个用户身份登录。

我正在尝试做的一些非常糟糕的 sudo 代码

我会把这段代码放在哪里?我可以为设计提供自定义登录功能吗?

也许超级密码方法不正确。你们看什么?

0 投票
3 回答
11502 浏览

ruby-on-rails - 使用 Minitest 存根 any_instance

在不使用 Mocha 的 any_instance 的情况下如何执行以下操作?我只想在不使用 Rspec的情况下测试此处描述的受保护控制器。