允许用户使用 URL 令牌访问受保护的页面

Allow user access to protected page using URL token

我正在使用 Clearance gem 进行身份验证。我在应用程序中有一个页面,我想允许任何人访问,前提是他们在 URL / Session 中有安全令牌。他们不必是系统中的用户。

这是否可以通过 Clearance 实现。关于我应该如何进行的任何提示。最初我认为我应该覆盖 require_logincurrent_user。这是一个好方法吗?

安全令牌页面是否也应该允许登录的人访问,还是必须每个人都拥有安全令牌?

如果您必须拥有安全令牌,无论您是否使用 Clearance 登录,那么我将完全不调用 require_login(或调用 skip_before_action :require_login 如果过滤器已经在你的控制器的继承树中)。然后你可以实现你自己的 before_action 来检查令牌并做任何你想做的事。如果需要,您还可以为此控制器实现自己的 current_user

如果该页面还应该允许登录用户,那么我仍然会跳过操作前的许可,而是使用如下内容:

def require_login_or_secret_token
  unless params["super_secret_security_token"] == TOKEN
    require_login
  else
end

那么如果你想在这个 action/view 中使用 current_user,那么你需要将 current_user 覆盖为 return 来宾对象而不是 nil =]

def current_user
  super || Guest.new
end