【问题标题】:Why I'm getting undefined method `cookies'?为什么我得到未定义的方法“cookies”?
【发布时间】:2015-07-06 08:58:35
【问题描述】:

我正在尝试为我的 rails 后端应用程序设置带有 single_access_token 的 Authlogic(我正在使用 rails-api gem)。

我正在关注这个例子:http://blog.centresource.com/2013/06/04/using-ember-auth-with-rails-3-and-authlogic/

到目前为止,我能够创建用户,但是当我尝试登录时,它在 user_session.save 上失败:

NoMethodError in Api::V1::UserSessionsController#create
undefined method `cookies' for #<Api::V1::UserSessionsController:0x00000004528cb8>

根据我在这里找到的类似问题,我必须将 Authlogic 配置为:

  acts_as_authentic do |c|
    c.login_field = :email
    c.maintain_sessions = false
  end

在我的用户模型上。但是,它一直在失败。我假设保存 UserSession 时,Authlogic 会尝试更新 User 上的魔法字段,但我不知道为什么仍在尝试使用 cookie。

【问题讨论】:

    标签: ruby-on-rails ruby cookies authlogic rails-api


    【解决方案1】:

    Rails-api 确实有额外的步骤来接受 cookie

    1. config.middleware.use ActionDispatch::Cookies 添加到config/application.rb
      1. 在您预期的控制器中的 include ActionController::Cookies 类下的顶部添加

    重启应用

    【讨论】:

      【解决方案2】:

      本教程假定您使用的是常规 rails 应用程序,但您使用的是 rails-api。默认情况下,rails-api 中的控制器不包含处理 cookie 的中间件。如果您需要 cookie,则需要添加该中间件:

      config.middleware.use ActionDispatch::Cookies
      

      然后在您的控制器中包含ActionController::Cookies。有关 rails-api README 中默认包含的内容的更多信息

      【讨论】:

      • 我知道,但我想避免在应用程序中使用 Cookie,因为它对 API 没有意义。根据 Authlogic 的文档,应该可以在没有 cookie 的情况下使其工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多