【问题标题】:Devise call backs设计回调
【发布时间】:2011-06-18 12:21:39
【问题描述】:

当用户登录和退出时,devise 有回调吗?

这是我想出的:

Warden::Manager.after_authentication do |user,auth,opts|
  user.update_attribute(:currently_signed_in, true)
end

Warden::Manager.before_logout do |user,auth,opts|
  user.update_attribute(:currently_signed_in, false)
end

这是我用来跟踪当前登录的用户的。

【问题讨论】:

  • before_logout 工作正常,但是在用户注册时不会触发 after_authentication,只有在他登录时才会触发...这不是正常行为,对吗?有什么想法吗?
  • 知道如何与令牌登录相结合吗?
  • 令牌登录是什么意思?

标签: ruby-on-rails ruby devise


【解决方案1】:

我不是专家,但我相信回调(挂钩)处于 Warden 级别(Devise 构建在 Warden 之上)。

Warden 中的 after_set_user 和 before_logout 应该可以解决问题,但Warden::Hooks 中还列出了其他选项

【讨论】:

  • Sweet,我会试试这些,然后回复你!
  • Hooks 可以进入 config/initializers/devise.rb,以防有人像我一样想知道。
  • 在执行此操作时,您可以使用应用程序控制器中的方法吗?
【解决方案2】:

您可以像这样在应用程序控制器中覆盖 sign_in

 def sign_in(*args)
   super(*args)
    # do whatever you want here
    token = current_user.authentications.where(provider: "facebook").first.token
    facebook = Koala::Facebook::API.new(token)
    session[:facebook] = facebook
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多