如何从另一个不同于设计的控制器调用设计sign_in和sign_out设计方法?

Mr_*_*zle 14 authentication login devise ruby-on-rails-3

我有一个Ruby on Rails 3.0.7应用程序和我的用户身份验证devise但是我有一个替代方法sign upsign in方法,我允许我的用户使用他们的Facebook帐户注册然后我在我的users表中保存那个设计使用的相同的登录信息注册和登录用户.

脚步

  1. ✔用户点击Facebook按钮.
  2. ✔我保存他的信息(提取的姓名和电子邮件Koala)我给用户一个通用密码.
  3. ☐使用devise登录此新用户.
  4. ✔重定向到我的主控制器.

我只是错过了第3步,因为我想继续使用current_user帮助器和user_signed_in?帮助器.

那么如何告诉设计从我的其他控制器自动登录该用户?

我在这个问题上看到了类似的东西.设计:有多个控制器处理用户会话,它会记录我的用户,但会引导我进入空白页面......

Thi*_*ilo 22

Devise提供了一堆帮助,其中两个是:

sign_in(resource_or_scope, *args)
sign_in_and_redirect(resource_or_scope, *args)
Run Code Online (Sandbox Code Playgroud)

您可以从任何控制器使用它们.

编辑

如果使用sign_in已经为您工作但将用户留在空白页面上,请检查您的日志文件以查看是否存在重定向,以及重定向到何处.或者通过使用上面的第二个帮助器来显式重定向.

  • 我尝试了这个,但是当我从控制器重定向到另一个页面时,用户不再登录。用户会话中没有任何内容。有什么建议么? (2认同)