【问题标题】:Doorkeeper Authentication Correct Syntax门卫身份验证正确语法
【发布时间】:2013-03-22 18:02:36
【问题描述】:

在 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

【问题讨论】:

    标签: ruby-on-rails ruby doorkeeper


    【解决方案1】:

    您需要在第二部分周围设置一个开始/结束块。如果存在,您希望身份验证器返回 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
    

    【讨论】:

    • 这是一个有趣的语法。不过,我想它会起作用。
    【解决方案2】:

    试试这个:

    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
    

    【讨论】:

    • 我忘记了“除非”!但是,我收到了一个意外的关键字结束错误。在 current_user 之后删除“do”并改为写 current_user 的语法是否正确?
    猜你喜欢
    • 2017-11-16
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 2014-04-15
    • 2017-03-05
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多