Question

In Doorkeeper.rb, there is a authentication block. I need to fit this logic in there, but I'm not sure how to write it since Ruby' syntax is still new to me.

Either the person is logged in and they are the current_user or the following logic below that is performed.

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
Was it helpful?

Solution

You need a begin/end block around the 2nd section. You want the authenticator to return current_user if it exists, otherwise do all the other stuff.

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

OTHER TIPS

Try this:

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top