在使用 Devise 进行身份验证后记住原始目标



如果用户访问受保护的页面但未登录,我想执行以下操作 -

  1. 将它们重定向到"登录"页面,并将原始目标保存为查询参数。 例如/log-in?dest=%2Faccount%2Fsettings

  2. 成功登录后,重定向到最初预期的页面而不是默认root_path,在本例中为/account/settings

有没有一种简单的方法可以使用Devise完成此操作?默认情况下,登录后它似乎不会"记住"原始页面,所以我猜我将不得不在某处覆盖一些before_action

谢谢!

设计宝石有一个很棒的wiki,其中很多问题都以教程风格的方式回答。 所以对于你的第二个问题,你可以关注。这个:

  • https://github.com/plataformatec/devise/wiki/How-To:-Redirect-back-to-current-page-after-sign-in,-sign-out,-sign-up,-update

一个提示:在"第一种方法"中,他们提到

若要在用户登录后重定向到存储位置,请覆盖 after_sign_in_path_for 方法:

如果生成控制器,则可以在设计控制器中定义此方法。

遵循这个程序,你可能甚至不需要你的第一点。

最新更新