我目前正在使用清除验证。作为登录过程的一部分,我想确保我有一个用户的位置(存储在会话中)。
我的问题是如何在清除范围内做到这一点?理想情况下,我只想在登录时执行查找(以节省网络流量/API调用)。如果我找不到用户,那么我将拒绝登录。
我正在考虑使用警卫,但我似乎无法访问request.ip
或session
,这有点不合时宜。我还试图避免重定向到仅进行地理位置然后再次重定向的URL。
任何人都有关于如何使这项工作的好模型的想法?谢谢!
守卫中的符号主要用于预防或允许登录的过程。我认为它们在这里不合适。对于此用例,我建议覆盖sign_in
,通常将其混合到ApplicationController
def sign_in(user, &block)
super
if signed_in?
UserGeocoder.call(current_user)
end
end