允许用户使用 URL 令牌访问受保护的页面
Allow user access to protected page using URL token
我正在使用 Clearance gem 进行身份验证。我在应用程序中有一个页面,我想允许任何人访问,前提是他们在 URL / Session 中有安全令牌。他们不必是系统中的用户。
这是否可以通过 Clearance 实现。关于我应该如何进行的任何提示。最初我认为我应该覆盖 require_login
和 current_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
我正在使用 Clearance gem 进行身份验证。我在应用程序中有一个页面,我想允许任何人访问,前提是他们在 URL / Session 中有安全令牌。他们不必是系统中的用户。
这是否可以通过 Clearance 实现。关于我应该如何进行的任何提示。最初我认为我应该覆盖 require_login
和 current_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