使用Rails App进行用户身份验证

时间:2013-06-05 15:04:58

标签: ruby-on-rails oauth doorkeeper

我有两个Rails应用程序,我想接受来自另一个应用程序(比如应用程序A)的用户登录凭据(比如应用程序B)。对于接受登录凭据(App B)的应用程序,我认为最好的选择是使用OAuth。但对于正在使用其用户凭据的应用程序(App A),如何允许其他站点使用用户的登录信息?我也使用OAuth,或Doorkeeper之类的东西吗?正如您所知,我对用户身份验证非常陌生,因此任何建议都会有所帮助!

1 个答案:

答案 0 :(得分:5)

解决问题的一种可能方法是创建一个包含所有用户凭据的基于门卫的独立应用程序。然后,您的客户端应用程序将实际连接到此“auth app”(使用Oauth。)然后,当客户端在Auth应用程序上进行身份验证时,它们将返回到客户端应用程序。当然,从UI的角度来看,您可以将其无缝化,因此您的登录页面实际上将在此Auth应用程序上,但它对用户来说看起来是无缝的。这样,您可以根据需要添加任意数量的应用程序,并且凭据将全部放在一个位置。要回答您的具体问题,您可以在您的客户端应用程序上使用Oauth2,在Auth应用程序上使用门卫。

您需要调整门卫配置,以使此过程对用户“干净”。例如,对于内部应用程序,您可以在门卫中安全地使用skip_authorization方法。 Learn more about that here

此门卫/ oauth系统具有将您的身份验证逻辑与主应用程序分离的额外好处,这是良好的面向服务的设计的基础。当然还有其他方法可以解决这个问题,但考虑到你的问题的背景,是的,门卫和Oauth2会解决你的问题。