Ruby on rails 基于路由的跳认证设计

Ruby on rails 基于路由的跳认证设计,ruby-on-rails,devise,Ruby On Rails,Devise,拥有Desive_for:用户通过Desive对用户控制器的所有方法进行身份验证。我想略过一些方法,例如users#api,users#do#u stuff,用自编的auth方法制作公共api 我怎么做 更新 skip_before_filter :authenticate_user!, only: [:api, :do_stuff] 仍然给我{“error”:“您需要登录或注册才能继续。”}试试这个- skip_before_filter :authenticate_user!, :only

拥有Desive_for:用户通过Desive对用户控制器的所有方法进行身份验证。我想略过一些方法,例如
users#api,users#do#u stuff
,用自编的auth方法制作公共api

我怎么做

更新

skip_before_filter :authenticate_user!, only: [:api, :do_stuff]
仍然给我
{“error”:“您需要登录或注册才能继续。”}

试试这个-

skip_before_filter :authenticate_user!, :only => [:api,:do_stuff]

users\u controller.rb内部添加以下行

before_action :authenticate_user!, :only => [:api, :do_stuff]

我假设您只想在users\u controller中对这两个方法调用进行身份验证,而没有在application\u controller中添加任何身份验证筛选器。

仍然给我{“错误”:“您需要登录或注册才能继续。”}使用except block而不是only仅对所需的方法进行身份验证,并在\u筛选器之前添加skip\u:对用户进行身份验证!到应用程序控制器跳过除expect块中使用的身份验证之外的所有身份验证。我这样做的原因是什么?您可以全部身份验证并跳过少数身份验证,也可以全部跳过并验证少数身份验证。我只想跳过api上的身份验证并执行其他操作。我认为只使用是一种方法。我错了吗?请在\u筛选器之前尝试
:验证\u用户!,除了:[:apiv1,:do_stuff]
。为什么:…只:[:api
v1
,:do_stuff]而不是…只:[
:api
,:do_stuff]你能发布控制器吗