Ruby on rails 基于路由的跳认证设计
拥有Desive_for:用户通过Desive对用户控制器的所有方法进行身份验证。我想略过一些方法,例如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
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]
。为什么:…只:[:apiv1
,:do_stuff]而不是…只:[:api
,:do_stuff]你能发布控制器吗