0

我目前正在使用 Clearance 进行身份验证。作为登录过程的一部分,我想确保我有用户的位置(存储在会话中)。

我的问题是如何在清关的情况下做到这一点?理想情况下,我只想在登录时执行查找(以节省网络流量/API 调用)。如果我找不到用户,那么我将拒绝登录。

我正在考虑使用警卫,但我似乎无法访问request.ipsession这有点破坏交易。我还试图避免重定向到只进行地理位置然后再次重定向的 URL。

有人对如何使这项工作产生良好的模型有想法吗?谢谢!

4

1 回答 1

1

登录保护主要用于阻止或允许登录的过程。我认为它们不适合这里。对于这个用例,我建议覆盖sign_in,这通常混合到ApplicationController

def sign_in(user, &block)
  super

  if signed_in?
    UserGeocoder.call(current_user)
  end
end
于 2017-02-19T17:48:21.440 回答