2014-10-15 7 views
2

Я играл с привратником, используя разные потоки. Я успешно пытается с потоком пароля, клиент потока верительных, но с потоком кода авторизации я получил следующее сообщение об ошибке:NoMethodError в Doorkeeper :: AuthorizationsController # new - Doorkeeper

NoMethodError in Doorkeeper::AuthorizationsController#new 

undefined method `id' for nil:NilClass 

Когда я нажал на кнопку авторизовать, как показано ниже: click on Authorize button

Ошибка:

enter image description here

Пожалуйста, помогите

ответ

1

Наконец он работал для меня. Проблема состояла в том, что у меня был блок resource_owner_authenticator, чтобы вернуть объект User в config/initializers/doorkeeper.rb.

#config/initializers/doorkeeper.rb 
resource_owner_authenticator do 
    User.find_by(id: session[:user_id]) || redirect_to(login_url) 
end 

resource_owner_from_credentials do |routes| 
    User.authenticate(params[:username], params[:password]) 
end 
2

я получаю ту же ошибку, пока я не понял, что вы должны вернуть пользователь из блока resource_owner_authenticator (который не очевиден из документации). Моя последняя строка в блоке не вернула пользователя, который забросил ошибку.