2017-02-16 7 views
0

私は現在、認証にクリアランスを使用しています。ログインプロセスの一環として、私は(セッションに格納されている)ユーザーのための場所があることを確認したいと思います。Rails 5クリアランスのGeolocation

私の質問はクリアランスのコンテキストでこれを行う方法ですか?理想的には、(ネットワークトラフィック/ API呼び出しを保存するために)ログインのルックアップを実行するだけです。ユーザーが見つからない場合は、ログインを拒否します。

私はguardを使用することを考えていましたが、私はrequest.ipまたはsessionへのアクセス権を持っていないようです。私はジオロケーションだけをリダイレクトするURLにリダイレクトしないようにしようとしていました。

誰もがこの作品を作成する方法についての素晴らしいモデルのアイデアを持っていますか?ありがとう!

答えて

1

サインインガードは、ほとんどの場合、サインインを禁止または許可するプロセスを想定していますが、ここでは適切ではないと思います。それは間違いなくガードのアプローチよりも適切と思われるように、このユースケースのために、私は一般的に

def sign_in(user, &block) 
    super 

    if signed_in? 
    UserGeocoder.call(current_user) 
    end 
end 
+0

ApplicationControllerのおかげでデレクで混合されたオーバーライドsign_inを、お勧めします、私はこのパスを試してみますよ。 – krsyoung

+0

これは魅力的なように機能しました。 – krsyoung