Rails同时设计令牌和cookie会话

时间:2016-07-17 13:37:40

标签: ruby-on-rails ionic-framework devise

我有一个rails web,它从一开始就使用cookie会话认证(设计)。现在,我们正在开发一种离子移动应用程序,它使用rails应用程序提供的API。

我曾考虑对这个新应用程序使用JWT或令牌身份验证,但我找不到将两种身份验证方法,cookie和JWT结合使用的方法。此外,两种应用都有不同的要求。例如,在Web中,用户只有在他/她具有特定角色时才能拥有并发会话。相反,在移动应用程序中,可以没有任何限制地进行并发会话。

我已经阅读了很多,试图想出如何结合两种方法,但我找不到方法。也许我应该考虑只使用其中一种方法(JWT)或使用另一种方法(门卫)。

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案。根据{{​​3}}和refaelos,我将设计与JWT gem相结合,使用last作为第一个的新策略。通过这种方式,当我不使用JWT令牌时,设计将选择默认策略(在我的情况下是database_authenticatable)。否则,它将使用JWT策略。

但是,如果未对用户进行身份验证并向Session#create发送请求以获取凭据,则devise / warden选择的策略为database_authenticatable。为了避免这种情况,我需要在请求中添加一个新参数,但仅针对这种情况,因为正如我所说,当令牌出现在请求中时,新策略被选中。

另见: