首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >门卫中的复选框作用域

门卫中的复选框作用域
EN

Stack Overflow用户
提问于 2018-05-21 21:28:04
回答 2查看 319关注 0票数 0

我希望允许用户从复选框列表中选择作用域。我将表单设置如下:

代码语言:javascript
复制
  <%= f.label :scopes, class: 'col-sm-2 control-label' %>
    <% Doorkeeper.configuration.scopes.each do |scope| %>
      <%= check_box_tag("doorkeeper_application[scopes][#{scope}]", scope, @application.scopes.include?(scope)) %>
      <%= scope %><br>
    <% end %>
  <% end %>

它会产生

Oauth::ApplicationsController接受doorkeeper_application[scopes]。虽然用户应该能够选择多个作用域,但不接受像doorkeeper_application[scopes][foo]这样的参数。

将这些参数传递给控制器的最佳实践是什么?或者在Doorkeeper中实现复选框作用域有更好的实践吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-21 21:51:11

根据OAuth2规范,多个作用域应该用空格字符连接。因此,您应该从params获取选中作用域的名称,使用空格" "将它们连接起来,并将该单个值指定为doorkeeper_application[scopes]值。

票数 1
EN

Stack Overflow用户

发布于 2019-03-26 04:21:56

从5.1.0rc2版本开始,Doorkeeper支持通过自动将数组转换为空格分隔的作用域字符串来实现开箱即用。有关更多详细信息,请参阅https://github.com/doorkeeper-gem/doorkeeper/pull/1214

对于5.1.0rc2以上的版本,您需要根据您自己或预处理用户输入参数来修补Scopes。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50450003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档