门卫认证正确的语法

时间:2013-03-22 18:02:37

标签: ruby-on-rails ruby doorkeeper

在Doorkeeper.rb中,有一个验证块。我需要在这里使用这个逻辑,但我不确定如何编写它,因为Ruby的语法对我来说仍然是新的。

此人登录并且他们是current_user或以下执行的逻辑。

resource_owner_authenticator do

   current_user ||

   session[:after_login_redirect_to] = request.fullpath
   session[:oauth_for_client_id] = params[:client_id]
   redirect_to('/connect')   

end

2 个答案:

答案 0 :(得分:1)

第2部分需要一个开始/结束块。您希望验证者返回current_user(如果存在),否则执行所有其他操作。

resource_owner_authenticator do
  current_user || begin
    session[:after_login_redirect_to] = request.fullpath
    session[:oauth_for_client_id] = params[:client_id]
    redirect_to('/connect')
  end
end

答案 1 :(得分:0)

试试这个:

resource_owner_authenticator do
  unless current_user do
    session[:after_login_redirect_to] = request.fullpath
    session[:oauth_for_client_id] = params[:client_id]
    redirect_to('/connect')
  end
end