LinkedIn Omniauth OAuth 2 в Rails - ошибка аутентификации при неправильном перенаправлении
Я пытаюсь выяснить, как настроить аутентификацию LinkedIn с моим приложением Rails 4, которое использует devise и omniauth. У меня есть: gem 'omniauth-linkedin-oauth2' в моем файле gem.
Я зарегистрировал свое приложение в LinkedIn и вставил секрет и ключ в свое приложение. Форум разработчиков LinkedIn подтвердил, что процесс работает, но говорит, что зарегистрированный путь перенаправления не совпадает с тем, что у меня есть в моем обратном вызове.
У меня есть контроллер omniauth_callbacks, в котором есть следующий код:
def linkedin
@user = User.find_for_linkedin_oauth(request.env["omniauth.auth"])
if @user.persisted?
redirect_to root_path, :event => :authentication
# sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
# set_flash_message(:notice, :success, :kind => "LinkedIn") if is_navigational_format?
else
session["devise.linkedin_data"] = request.env["omniauth.auth"]
redirect_to root_path
end
end
Я перенаправляю на мой root_path.
Мой root_path определен в моем файле rout.rb как: home # home.
В моей папке views у меня есть папка с именем home, с файлом home.html.erb.
Я зарегистрировал URL перенаправления в LinkedIn как: www.xxxxxxx.com/home, а также пробовал следующее: www.xxxxxxx.com, www.xxxxxxx.com/views/home/home, www.xxxxxxx.com/home/ Главная. Ни один из этих путей не работает.
Кто-нибудь может помочь мне понять, как определить путь перенаправления, который LinkedIn может распознать как совпадающий с моим root_path.
Заранее большое спасибо.
1 ответ
Бежать rake routes
и посмотреть, чем заканчивается шаблон URI callback
,
Скорее всего, вы найдете шаблон как:
/users/auth/:action/callback(.:format)
Это означает, что при разработке ваш URL обратного вызова будет:
http://localhost:3000/users/auth/linkedin/callback
И в производстве ваш URL обратного вызова будет:
www.xxxxxxx.com/users/auth/linkedin/callback