認証にdeviseとomniauthを使用するRailsアプリケーション。Facebookユーザーのみが許可されています。Facebook ログインはうまく機能し、omniauth コールバックもうまく機能しています。
私のGemfileには、とりわけ基本的なものが含まれています:
gem 'devise'
gem 'omniauth'
gem 'omniauth-facebook'
私の「本」View Controllerでは、デバイス認証を追加しました:
class BooksController < ApplicationController
before_filter :authenticate_user!
問題: ユーザーが authenticate_user! 失敗すると、devise は sign_in ページ (ユーザーがユーザー名、電子メール、パスワード、確認を入力するページ) にリダイレクトしています。Facebookユーザーのみが必要なため、この動作は望ましくありません。authenticate_user が失敗した場合、Facebook ログインにリダイレクトするように工夫する必要があります。
ユーザーが認証されていないときにデバイスをFacebookログインにリダイレクトする方法は?