我有两个应用程序,AppA和AppB,它们都是Rails应用程序。如何使用devise,omniauth登录到远程rails应用程序
我创建了一个使用Devise,Omniauth和Doorkeeper的单点登录机制。 这是如果您登录到AppA,那么您将被授权给AppB,因为AppB向AppA发出oauth呼叫以检查此情况。 AppA有设计,目前你必须登录。
我希望能够做的是在AppB中创建一个ajax登录表单,并且这会将我的凭据传递给AppA中的Devise,并允许我访问AppB,而不是重定向到AppA并返回。
我似乎能够做到这一点,如果我禁用在AppA中的CSRF检查,但我希望能够有一个替代方案,我或者不必这样做,或者我可以提供一个替代方案,而无需任何安全漏洞。
所以我的主要问题是,如果有人有任何想法如何做到这一点,或者他们做了类似的事情,并有建议吗? 非常感谢,
埃蒙
谢谢您的回复,但我想要当然,我对此有一些保障,所以我不只是想拿走CSRF并且不留下任何东西。 – etphoneshome
正如我上面提到的 - 你只想在你的ApiController *中禁用CSRF检查*。然后,您可以默认在您的ApplicationController中启用CSRF保护,以便保护您的其他应用程序。 – mwalsher