首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 4设计: SessionsController: UnknownFormat: 406错误

Rails 4设计: SessionsController: UnknownFormat: 406错误
EN

Stack Overflow用户
提问于 2015-04-03 21:23:14
回答 1查看 401关注 0票数 0

我正在尝试使用Devise登录,但是登录失败了,因为Rails 4发出了一条406 Not Acceptable消息。

代码语言:javascript
运行
复制
Started POST "/login.user" for 127.0.0.1 at 2015-04-03 14:37:21 -0600
Processing by Devise::SessionsController#create as
  Parameters: {"utf8"=>"✓",
               "authenticity_token"=>"RLOQtv2L80h1VnMKynBuGsqsTEoggZzk3dWk6h8WdfQLOaOcoznTsPDortDQD5ql8qHm52l3+qnAxTf6U+dLxQ==",
               "user"=>{"email"=>"jack@example.com",
                        "password"=>"[FILTERED]",
                        "remember_me"=>"0"},
               "commit"=>"Log in"}
  User Load (0.5ms)  SELECT  "users".* FROM "users" WHERE "users"."email" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["email", "jack@example.com"]]
   (0.2ms)  BEGIN
  Role Load (0.4ms)  SELECT "roles".* FROM "roles" INNER JOIN "unities" ON "roles"."id" = "unities"."role_id" WHERE "unities"."user_id" = $1 AND (((roles.name = 'nil') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)))  [["user_id", 4]]
  SQL (0.5ms)  UPDATE "users" SET "last_sign_in_at" = $1, "current_sign_in_at" = $2, "sign_in_count" = $3, "updated_at" = $4 WHERE "users"."id" = $5  [["last_sign_in_at", "2015-04-03 20:27:03.080761"], ["current_sign_in_at", "2015-04-03 20:37:21.763619"], ["sign_in_count", 7], ["updated_at", "2015-04-03 20:37:21.797872"], ["id", 4]]
   (1.7ms)  COMMIT
Completed 406 Not Acceptable in 160ms (ActiveRecord: 6.0ms)

我正在尝试调整我找到的这里会话控制器;以下是相关的部分:

代码语言:javascript
运行
复制
class Users::SessionsController < DeviseController
  prepend_before_filter :require_no_authentication, only: [:new, :create]
  prepend_before_filter :allow_params_authentication!, only: :create
  prepend_before_filter :verify_signed_out_user, only: :destroy
  prepend_before_filter only: [:create, :destroy] { request.env["devise.skip_timeout"] = true }

  # GET /resource/sign_in
  def new
    self.resource = resource_class.new(sign_in_params)
    clean_up_passwords(resource)
    yield resource if block_given?
    respond_with(resource, serialize_options(resource))
  end

  # POST /resource/sign_in
  def create
    self.resource = warden.authenticate!(auth_options)
    set_flash_message(:notice, :signed_in) if is_flashing_format?
    sign_in(resource_name, resource)
    yield resource if block_given?
    respond_with resource, location: after_sign_in_path_for(resource)
  end
end

以下是有关的路线:

代码语言:javascript
运行
复制
                  Prefix Verb     URI Pattern                  Controller#Action
        new_user_session GET      /login(.:format)             devise/sessions#new
            user_session POST     /login(.:format)             devise/sessions#create
    destroy_user_session GET      /sign_out(.:format)          users/sessions#destroy

我的sessions/new.html.erb视图使用以下形式:

代码语言:javascript
运行
复制
<%= form_for(resource, as: resource_name, url: user_session_path(resource_name)) do |f| %>
    <input name="authenticity_token"
           type="hidden"
           value="<%= form_authenticity_token %>"/>
    <div class="field">
      <%= f.label :email %><br />
      <%= f.email_field :email, autofocus: true %>
    </div>
    <div class="field">
      <%= f.label :password %><br />
      <%= f.password_field :password, autocomplete: "off" %>
    </div>
    <% if devise_mapping.rememberable? -%>
        <div class="field">
          <%= f.check_box :remember_me %>
          <%= f.label :remember_me %>
        </div>
    <% end -%>
    <div class="actions">
      <%= f.submit "Log in" %>
    </div>
<% end %>

注意,我添加了隐藏的authenticity_token,试图处理406 Not Acceptable消息(我的application.html.erb视图中也有<%= csrf_meta_tags %> ),从POST我可以看到它正在发送。

我的用户模型有devise: :database_authenticatablevalidates_presence_of :email, :password

我很感谢你的建议和建议!我已经尝试了许多建议,并且有一个类似的问题,这里。我可以提供任何其他可能有帮助的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-08 07:09:15

我使用'omniauth-google-oauth2'gem解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29439887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档