У меня есть ng-token-auth для интерфейса и devise_token_auth на серверной части . Теперь я должен реализовать входы omniauth-facebook
и omniauth-goole
на свой веб-сайт. Тем не менее, я выполнил вход в Facebook со следующими функциями.
в config.js (ng-token-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' }
Контроллер всесторонней аутентификации
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=User" для 127.0.0.1 в 2016-03-12 18:34:33 +0500 I, [ 2016-03-12T18:34:33.203521 #5978] ИНФОРМАЦИЯ -- 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::Strategies::OAuth2::CallbackError, csrf_detected | CSRF обнаружил обработку Devise::OmniauthCallbacksController#failure как HTML-параметры: {"code"=>"AQARGivLmOzsdLxe ..... "} Перенаправлено на http://localhost:3000/auth/sign_in Завершено 302 Найдено за 10 мс (ActiveRecord: 0,0 мс)
Начат GET "/auth/sign_in" для 127.0.0.1 в 2016-03-12 18:34:36 +0500 Обработка DeviseTokenAuth::SessionsController#new as HTML Завершено 405 Метод не разрешен за 1 мс (Просмотры: 0,2 мс | ActiveRecord: 0,0 мс)