У меня ng-token-auth для интерфейса и devise_token_auth на сервере. Теперь я должен реализовать omniauth-facebook
и omniauth-goole
логины на своем веб-сайте. Да, я сделал вход в facebook со следующими функциями
в config.js(ng-токен-auth)
$scope.handleBtnClick = function() {
console.log('here its')
$auth.authenticate('facebook')
.then(function(resp) {
// handle success
})
.catch(function(resp) {
// handle errors
});
};
В этот момент логин происходит успешно, но при перенаправлении он показывает мне следующую ошибку на странице моего браузера.
{ "errors": [ "Использовать POST/sign_in для входа. GET не поддерживается." ]}
routes.rb
mount_devise_token_auth_for 'User', at: 'auth',:controllers => { :omniauth_callbacks => 'omniauth' }
devise.rb
config.omniauth :facebook, 'APP_KEY', 'APP_SECRET',{ :scope => 'email' }
контроллер omniauth
class OmniauthController < Devise::OmniauthCallbacksController
def facebook
byebug
@user = User.from_omniauth(request.env["omniauth.auth"])
sign_in_and_redirect @user
end
end
И вот мои журналы журнала
Начало GET "/OmniAuth/facebook auth_origin_url = HTTP% 3A% 2F% 2Flocalhost% 3A3000% 2F% 23% 2F &? Omniauth_window_type = sameWindow & resource_class= Пользователь" для 127.0.0.1 в 2016-03-12 18:34:33 +0500 I, [2016-03-12T18: 34: 33.203521 # 5978] INFO - omniauth: (facebook) Запрошенная фаза.
Запущен GET "/omniauth/facebook/callback? code = AQARGivLmOz......" для 127.0.0.1 на 2016-03-12 18:34:34 +0500 I, [2016-03-12T18: 34: 34.189285 # 5978] INFO - omniauth: (facebook) Начальная фаза обратного вызова. I, [2016-03-12T18: 34: 36.790185 # 5978] INFO - omniauth: (facebook) Начальная фаза обратного вызова. E, [2016-03-12T18: 34: 36.790636 # 5978] ОШИБКА - omniauth: (facebook) Ошибка аутентификации! csrf_detected: OmniAuth:: Стратегии:: OAuth2:: CallbackError, csrf_detected | CSRF обнаружена Обработка по Devise:: Ошибка OmniauthCallbacksController # как Параметры HTML: { "code" = > "AQARGivLmOzsdLxe....." } Перенаправлено в http://localhost:3000/auth/sign_in Завершено 302 найдено за 10 мс (ActiveRecord: 0.0ms)
Запущен GET "/auth/sign_in" для 127.0.0.1 в 2016-03-12 18:34:36 +0500 Обработка DeviseTokenAuth:: SessionController # new как HTML Завершено 405 Метод не разрешен в 1 мс (Просмотров: 0.2мс | ActiveRecord: 0.0ms)