Ruby on rails 使用Rails应用程序进行用户身份验证

Ruby on rails 使用Rails应用程序进行用户身份验证,ruby-on-rails,oauth,doorkeeper,Ruby On Rails,Oauth,Doorkeeper,我有两个Rails应用程序,我想从一个应用程序(比如说应用程序A)接受用户登录凭据,另一个应用程序(比如应用程序B)。对于接受登录凭据的应用程序(比如应用程序B),我认为最好的选择是使用OAuth。但是,对于用户凭据正被应用程序A使用的应用程序,如何允许其他站点使用用户的登录信息?我是否也使用OAuth,或者类似的东西?正如您所知,我对用户身份验证非常陌生,所以任何建议都会很有帮助 解决这个问题的一个可能方法是创建一个基于门卫的独立应用程序,该应用程序将包含用户的所有凭证。然后,您的客户端应用程

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

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

你需要调整门卫的配置,让这个过程对用户来说是干净的。例如,对于内部应用程序,您可以安全地在doorkeeper中使用skip_授权方法


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

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

你需要调整门卫的配置,让这个过程对用户来说是干净的。例如,对于内部应用程序,您可以安全地在doorkeeper中使用skip_授权方法

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

我认为您需要SSO,我认为您需要SSO,