Tag: rest

使用Doorkeeper的OAuth回调URL参数

我正在使用OAuth2和Doorkeeper来保护我的API。 问题是,一个客户端有几个不同的流程,他将用户重定向到我的OAuth流程。 他希望在将用户重定向到我的OAuth流时动态添加一些参数 ,并在我调用其回调URL时返回这些参数 。 通过这种方式,他将能够判断此回调源自哪个流程。 OAuth 2可以实现吗? 门卫? 怎么样? 编辑: 感谢ZólyomiIstván的提示。 我在调用auth端点之前设置了state参数,并在回调中将其恢复。 但是,我发现即使我没有设置任何内容,我也会使用一些明显随机的字符串返回状态参数。 知道它是什么? 我想确定我没弄乱任何东西……

如何关闭仅用于json的rails protect_from_forgeryfilter

我有使用Rails3构建的网站,现在我想为移动客户端访问实现json API。 但是,由于protect_from_forgeryfilter,从客户端发送json post请求。 因为客户端不会从服务器检索任何数据,所以客户端无法接收auth_token,因此我只想为json请求关闭protect_from_forgery选项(我认为rails3在默认情况下执行此操作,但显然它没有) 。 我知道在这里讨论类似的主题,但在这种情况下,他在发送post请求之前收到auth_token。 所以我的问题是只关闭json的protect_from_forgery是这样做的好方法吗? 如果是,怎么办? 如果不是,还有什么选择? 仅供参考,我使用以下ajax请求 $.ajax({ type: ‘POST’, url: “http://www.example.com/login.json”, data: { ’email’: emailVal, ‘password’: passwordVal }, success: onSuccess, error: onError, dataType: “json” }); 我得到ActionController :: InvalidAuthenticityToken错误。 顺便说一句,遵循curl命令工作虽然… curl -H“Content-Type:application / json”-c cookies.txt -d'{“email”:emailVal,“password”:passwordVal}’-X POST http://www.example.com/login.json -一世

REST API:我是否需要validation注销操作?

我正在编写REST API服务器(使用Rails),这是一个关于会话管理的问题。 我认为对于REST API服务器,我们不需要为每个用户保存登录状态(或会话 )。 所以我只为每个用户添加一个身份validation令牌 。 如果他们登录,则此服务器将向此返回此令牌,如果注销,则将其销毁。 而且我想知道是否有必要validation此令牌销毁操作? 可能有恶意用户迭代所有可能的令牌( 可能! )并将它们包装在DELETE请求中给我的服务器… 非常感谢!

是否可以在Rails项目中更改文件夹结构?

我来自.Net MVC背景,希望在RoR中完成一个项目。 具体来说,我正在开发一个REST API。 我将描述我的想法,希望你能引导我朝着正确的方向前进。 我的api必须支持版本,而最强大的api版本方法是复制每个版本的代码。 这样在一个版本中修复问题不会影响其他版本。 在.NET MVC中进行此操作时,区域是您最好的朋友,因为每个版本的源文件可以通过使用区域进行细分。 所以我的问题是:在RoR中,可以更改目录结构,以便进行此层次结构 app/ controllers /v1 c1_controller.rb c2_controller.rb /v2 c1_controller.rb c2_controller.rb models/ /v1 m1.rb m2.rb /v2 m1.rb m2.rb views/ /v1 view1.html.erb view2.html.erb /v3 view1.html.erb view2.html.erb 可以重新安排到这个? app/ v1/ controllers/ c1_controller.rb c2_controller.rb models/ m1.rb m2.rb views/ view1.html.erb view2.html.erb v2/ controllers/ c1_controller.rb c2_controller.rb models/ m1.rb m2.rb views/ view1.html.erb view2.html.erb

路由会话#destroy action

我正在链接到Sessions控制器的destroy动作,如下所示: routes.rb中: resources :sessions, only: [:new, :create, :destroy] Rails抱怨上面的链接: 没有路由匹配{:action =>“destroy”,:controller =>“sessions”}缺少必需的密钥:[:id] 当没有对象ID提供链接时,如何链接到destroy操作并在Rails中保留REST /资源方法?

获取内容请求类型

要查找传入的内容类型, 文档说 : request.headers[“Content-Type”] # => “text/plain” 但我通过反复试验发现,这不起作用,但这样做: request.headers[“CONTENT_TYPE”]==’application/json’ 那么最强大+便携的方式是什么呢?

带有REST API的Ruby on Rails

我是Ruby on Rails的新手,虽然我喜欢提供的组织和标准,但我对如何在这种特定情况下使rails工作有点困惑。 我有一个Web服务,我想使用我的rails应用程序。 直接连接到数据库会很好,并立即为我提供使我的Rails应用程序工作所需的模型。 但是,我必须复制webservice提供的所有逻辑(这不是一件容易的事)。 如果我没有直接连接到数据库,我将如何持久保存模型(例如用户模型)。 我是否必须创建一个模拟服务器数据库的单独数据库,但从不直接与它进行交互? 在此先感谢 – 如果您需要澄清,请告诉我。 编辑:示例 我有一个rails应用程序,可以访问URL www.mywebservice:8080.com/users/5 服务返回JSON {name:foo,nick:bar,friend:baz} 在这一点上,我如何告诉rails将User对象从它刚刚获得的内容中删除,然后将其存储在数据库中? 或者有没有办法坚持这个JSON对象?

Rails:JSON还是REST吗?

我对网络开发还很新,所以如果这个问题真的很愚蠢,请耐心等待。 我正在尝试遵循REST原则,但是,我非常感谢JSON如何与Ruby以及通过API从外部连接的任何内容。 我知道它在REST中非常标准直接将参数输入到URL中,如下所示:myurl.com/ExampleModel/MyIDParameter并将JSON(如果有的话)发送到该URI,对吧? 我想知道的是:从URI中删除参数(以及如果我永远不会使用它的路由)是否违反REST原则并将参数包含在JSON中? 例如,而不是调用它: myurl.com/ExampleModel/id { “name” : “My Name”, “anotherParameter” : “A random string” } 你会这样称呼: myurl.com/ExampleModel { “id” : 512, “name” : “My Name”, “anotherParameter” : “A random string” }

如何在Rails中使用RESTful路由创建删除表单。

我正在尝试创建一个表单,用作控制器上destroy方法的确认。 在我的路线中,我有: resources :leagues do get ‘delete’, :on => :member end 在我的delete.html.erb中,我有以下内容: {:method => :delete} do |form| %> ‘cancel’ %> current_league是一个由以下内容定义的辅助函数: def current_league @current_league ||= League.find_by_id(params[:id]) end 所以问题在于生成的表单只编辑联盟模型,如form method =“post”所示。 我怎样才能解决这个问题?

Magento oauth和REST api麻烦

我正在尝试将我的ruby在rails应用程序上集成到magento,我甚至做出了初始请求,获得授权,我相信我已经获得了最终令牌,但我无法确定。 以下是我的回复: (这里有很多东西,所以在我取出导入位的时候跳过去) ….. “credentials”=> {“token”=>”r8apb2rcgci9ry5hugcuiqlnwdi0evc1”, “secret”=>”8pnyogb4048toujt5rjoq26tqh50vkv5”}, “extra”=> {“access_token”=> #<OAuth::AccessToken:0x007fdd59893468 @consumer= #<OAuth::Consumer:0x007fdd5995f928 @http=#, @http_method=:post, @key=”ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e”, @options= {:signature_method=>”HMAC-SHA1″, :request_token_path=>”/oauth/initiate”, :authorize_path=>”/admin/oauth_authorize”, :access_token_path=>”/oauth/token”, :proxy=>nil, :scheme=>:header, :http_method=>:post, :oauth_version=>”1.0″, :site=>”https://mymagentocart.dev”}, @secret=”b0maut2ftkg2wb3nm24t263720n7kxqa”>, @params= {:oauth_token=>”r8apb2rcgci9ry5hugcuiqlnwdi0evc1″, “oauth_token”=>”r8apb2rcgci9ry5hugcuiqlnwdi0evc1″, :oauth_token_secret=>”8pnyogb4048toujt5rjoq26tqh50vkv5”, “oauth_token_secret”=>”8pnyogb4048toujt5rjoq26tqh50vkv5″}, @secret=”8pnyogb4048toujt5rjoq26tqh50vkv5″, @token=”r8apb2rcgci9ry5hugcuiqlnwdi0evc1”>}, “oauth_token”=>”jj2dbrea7dimxwc0twibyoikxjazvs6y”, “oauth_verifier”=>”83idqmtmb76fe5axad1rf7lhfa3wqxki” ….. 我在访问令牌中看到了我的密钥和秘密: @key=”ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e” @secret=”b0maut2ftkg2wb3nm24t263720n7kxqa” 当我在管理员中创建REST使用者时,这就是magento给我的东西。 然后有一堆重复的令牌和秘密,但它们都是一样的,属于“凭证”标签: “token”=>”r8apb2rcgci9ry5hugcuiqlnwdi0evc1″ “secret”=>”8pnyogb4048toujt5rjoq26tqh50vkv5” 最后,有oauth_token和oauth_verifier: “oauth_token”=>”jj2dbrea7dimxwc0twibyoikxjazvs6y” “oauth_verifier”=>”83idqmtmb76fe5axad1rf7lhfa3wqxki” 所以这是我的问题…… 我需要通过以下哪些请求直接进行身份validation而无需重新生成令牌? 在我的应用程序中,每次我发出请求时,它都会一直将我发送回magento的用户确认屏幕以进行授权。 另外,我如何请求获取我的magento用户ID,名称等…所以我可以使用此信息在rails app中生成用户? 谢谢!