【发布时间】:2018-04-04 17:02:29
【问题描述】:
我的应用程序有以下控制器:
class Api::BaseApiController< ApplicationController
before_action :parse_request, :authenticate_member_from_token!
def index
render nothing: true, status: 200
end
protected
def authenticate_member_from_token!
if !request.headers[:escambo_token]
@member = Member.find_by_valid_token(:activate, request.headers['escambo_token'])
if !@member
render nothing: true, status: :unauthorized
end
end
end
然后,我有另一个从该控制器继承的控制器:
class Api::CategoryController < Api::BaseApiController
before_action :find_category, except: [:index]
def index
@category = Category.all
puts(@category)
render json: @category
end
但是控制器允许没有令牌的请求。
编辑 1:由于某种原因,index 操作开始正常工作。但仍未对令牌进行验证。
EDIT 2:修复方法从private 到protected
【问题讨论】:
-
@SergioTulentsev 已经修复!谢谢。
-
你确定它正在通过正确的方法吗?您可以将 breapoints 放在那里以确保它们被调用
-
@maxpleaner 我再次编辑了问题。
-
@olegario:所以你是说它没有输入
authenticate_member_from_token!?你怎么知道的?是否输入parse_request? -
如果
authenticate_member_from_token!没有被调用,那么上面的代码中缺少一些重要的东西。我认为没有理由不调用它。
标签: ruby-on-rails ruby inheritance