2017-02-16 17 views
0

В настоящее время я использую Clearance для аутентификации. В рамках процесса входа я хочу убедиться, что у меня есть место для пользователя (сохранено в сеансе).Rails 5 Geolocation with Clearance

Мой вопрос заключается в том, как это сделать в контексте оформления? В идеале я хочу только выполнить поиск при входе в систему (для сохранения вызовов сетевого трафика/API). Если я не смогу найти пользователя, я откажу в регистрации.

Я думал об использовании guard, но у меня, похоже, нет доступа к request.ip или session, что немного прерывает сделку. Я также пытался избежать перенаправления на URL-адрес, который только делает геолокацию, а затем перенаправляет снова.

У кого-нибудь есть идеи по хорошей модели о том, как сделать эту работу? Благодаря!

ответ

1

Войти в систему охранники в основном предназначены для процессов, которые предотвратят или разрешат вход. Я не думаю, что они здесь хорошо подходят. Для этого случая использования, я хотел бы предложить первостепенную sign_in, которая, как правило, смешанную и ApplicationController

def sign_in(user, &block) 
    super 

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

Спасибо Дерека, я дам этому пути попробовать, как это, безусловно, представляется более целесообразным, чем подход Guard. – krsyoung

+0

Для записи это работало как шарм. – krsyoung