我正在使用rails 3并设计。我想在以下工作流程中进行构建。
我已实现此功能,但是,如果管理员当前未登录该站点,则管理员将退回到未经过身份验证的根路径。
电子邮件中发送的链接是否可以作为特定管理员的身份验证?
答案 0 :(得分:0)
您可以将其实现为自定义控制器操作。
您可以通过在:before_filter调用中添加:except => :custom_action
密钥来关闭控制器中给定操作的设计身份验证。
您可以在包含article_id和admin_id的链接中包含查询字符串。然后在自定义控制器操作中,您将通过articles表中的额外字段检查此文章是否尚未经过审核。如果有,你可以保释。如果没有,那么您可以允许主持人批准或不批准它,将主持标志设置为true并感谢主持人的工作。
如果您想变得非常棘手,可以让URL包含一个MD5哈希的id,您可以将其用作键而不是文章ID。您可以将其存储在文章模型的额外字段中。这将使得在短暂的窗口期间,当它具有中等能力时,它不太可能被欺骗。
伊恩。
答案 1 :(得分:0)
您想要查看设计的令牌身份验证。这允许您使用一次性密钥通过URL参数授权用户访问。
在此处查看更多信息。 http://zyphmartin.com/blog/simple-auth-token-example-with-devise
此外,您只需为每个资源创建一个身份验证令牌,并将身份验证值存储在数据库中。当您转到资源ID和身份验证令牌中的资源传递的批准URL时。这比以管理员身份登录用户更安全。
如果您需要更多帮助,请与我们联系。
答案 2 :(得分:0)
您可以向控制器添加操作(您的URL指向的位置),然后将其添加到控制器中,将其从身份验证中排除:
before_filter :authenticate_user!, :except => [:review_article]
您可以在网址中包含某种键(例如,Ian建议的文章的MD5),并在review_article
中查看。