Ruby on rails 没有cookie的Rails中的OAuth?
通常,Rails中的OAuth由OmniAuth处理,可以直接使用,也可以与Desive一起使用。然而,这在仅API的后端似乎不起作用;OmniAuth依赖于Cookie,并拥有自己的(不透明)中间件,而Cookie对本机客户端的性能不太好。这就是为什么我在寻找一种不用cookies的OAuth方法。我试图建立一个独立的前端和后端网站;在我看来,OAuth通过网页的工作流程是Ruby on rails 没有cookie的Rails中的OAuth?,ruby-on-rails,oauth,devise,omniauth,rails-api,Ruby On Rails,Oauth,Devise,Omniauth,Rails Api,通常,Rails中的OAuth由OmniAuth处理,可以直接使用,也可以与Desive一起使用。然而,这在仅API的后端似乎不起作用;OmniAuth依赖于Cookie,并拥有自己的(不透明)中间件,而Cookie对本机客户端的性能不太好。这就是为什么我在寻找一种不用cookies的OAuth方法。我试图建立一个独立的前端和后端网站;在我看来,OAuth通过网页的工作流程是 用户单击我前端的一个按钮,链接到OAuth提供程序,在我的前端有一个回调 用户在提供者页面中进行身份验证和授权,并使用凭
授权
头中提取的。(不,JWT不是解决方案,因为它不能轻易撤销。Redis可以。)但是我仍然想知道是否有任何解决方案可以使用,或者Desive或OmniAuth是否已经覆盖了cookieless服务器
FWIW,我在macOS Sierra上,每个gem都是最新版本。我认为您可以为omniauth提供不同的会话存储: 您还可以在Desive上禁用基于cookie的会话,或者简单地用自己的流覆盖登录/注销 您可以滚动您自己的oauth流,您可以检查一些omniauth策略,看看如何为每个提供者执行这些操作 它基本上是,通过带有特定参数的URL重定向,直到您获得令牌 在我现在开发的东西上,我基本上使用omniauth通过Oauth2登录,并设计基于电子邮件的登录。使用omniauth,我使用响应哈希创建自己的会话,我基本上劫持Desive sign_以使用自己的“方法”登录。然后,在整个用户体验中,我都依赖于相同的会话
不确定如何使用API,但只要您能够验证Oauth流是否正确,并且您有他们的电子邮件,然后就可以定期执行任何操作以保持他们登录。我认为您可以为omniauth提供不同的会话存储: 您还可以在Desive上禁用基于cookie的会话,或者简单地用自己的流覆盖登录/注销 您可以滚动您自己的oauth流,您可以检查一些omniauth策略,看看如何为每个提供者执行这些操作 它基本上是,通过带有特定参数的URL重定向,直到您获得令牌 在我现在开发的东西上,我基本上使用omniauth通过Oauth2登录,并设计基于电子邮件的登录。使用omniauth,我使用响应哈希创建自己的会话,我基本上劫持Desive sign_以使用自己的“方法”登录。然后,在整个用户体验中,我都依赖于相同的会话 不知道如何使用API来实现,但只要您能够验证Oauth流是否正确,并且您有他们的电子邮件,那么您就可以定期做任何事情来让他们登录