2013-03-22 3 views
1

В Doorkeeper.rb имеется блок аутентификации. Мне нужно приспособить эту логику там, но я не уверен, как ее написать, поскольку синтаксис Ruby для меня все еще новенький.Проверка подлинности Doorkeeper Правильный синтаксис

Либо человек вошел в систему, и они являются текущим_узлом или следующей логикой ниже, которая выполняется.

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 

ответ

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 
+0

это интересный синтаксис. Я полагаю, что это сработает. –

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 
+0

Я забыл о «если»! Но с этим я получаю непредвиденную ошибку конца ключевого слова. Является ли правильный синтаксис удалять «делать» после current_user и вместо этого писать current_user? – ac360

Смежные вопросы