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