2015-10-19 81 views
0

我需要控制对整个Ruby on Rails应用程序的访问,只允许一些选定的用户在开发过程中查看它。轻松访问Rails应用程序?

我没有查看完整的身份验证系统,但更简单一些,我可以将电子邮件地址添加到受限用户列表中,向其发送电子邮件并让该用户看到该应用程序,拒绝任何其他用户用户。

我试图在Heroku中使用WWWhisper插件(该应用程序托管在那里),因为它正是我所需要的,但它似乎并不在美国以外。

我想我必须自己构建它,但之前我想确保没有更简单的解决方案。有任何想法吗?提前致谢。

+0

无论如何,您可能希望为普通用户添加一个Auth系统,因此您现在可以添加它以限制对其他开发者的访问。在很多方面,这实际上比自己写一些简单的东西容易得多,然后你就不需要将它丢弃并在以后更换。 –

+0

我们已经将应用程序的用户类型用于标准身份验证,但我需要限制对这些身份验证页面的访问,以便只有我明确允许的人员才能访问应用程序的注册/登录页面。 – jbk

+0

啊。然后可能basicauth。 http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Basic.html –

回答

2

如果您的接入需求“已经得到了邀请电子邮件”,那么我觉得你的最简单的办法是有这样的事情

#in application.rb 

before_filter :require_invite 

protected 
    def require_invite 
    session[:invite_token] ||= params[:invite_token] 
    unless session[:invite_token] == "<SOME SECRET KEY STRING>" 
     redirect_to external_home_path and return 
    end 
    end 
end 

其中external_home_path是人们有的拿着页面还没收到邀请谁,其中说“对不起,你需要一个邀请令牌等等等等”。您需要将其添加到处理外部主页的控制器,以避免循环重定向。

skip_before_filter :require_invite, :only => [:external_home] 

然后你只需要派人的一个链接邀请这样

http://example.com?invite_token=<SOME SECRET KEY STRING> 

显然,这不是很安全,但作为“我都看见了电子邮件”的标准是一样安全。

当你上线时,你可以带上这个before_filter。

+0

非常感谢Max,非常感谢,我认为您的答案现在是一个很好且简单的解决方案。 – jbk

相关问题