Rails 3 AuthenticityTokens никогда не совпадают - PullRequest
1 голос
/ 11 ноября 2010

У меня сейчас очень странная проблема: я отправляю очень стандартную форму для действия создания, и она всегда завершается ошибкой с ActionController :: InvalidAuthenticityToken.Что невероятно странно, это то, что я не касаюсь скрытого поля в форме, и когда я отправляю сообщение, я вижу authenticity_token в параметрах, но значение внутри _csrf_token отличается (я не знаю, предполагается либыть таким же, просто дикая догадка).Тем не менее, он всегда терпит неудачу, токены не совпадают.

Форма на 100% нормальная, без Ajax или multipart.Я использую warden для аутентификации, но это определенно не должно быть проблемой.

У кого-то есть идеи, по крайней мере, посмотреть?

Вот код контроллера:

class UsersController < ApplicationController

  before_filter :authenticate, :only => [ :show ]

  def new; end

  def create
    if @user = User.create( params[ :user ] )
      redirect_to dashboard_url( :subdomain => @user.subdomain )
    else
      Rails.logger.debug @user.errors.full_messages
      render :new
    end
  end

  def show
  end

end

А вот представление:

<p> Is this you ? </p>

<%= form_for @user, :url => url_for( :controller => 'users', :action => 'create' )  do |f| %>

  <%= f.label :given_name, "Name" %>:
  <%= f.text_field :given_name %>

  <br />

  <%= f.label :family_name, "Surname" %>:
  <%= f.text_field :family_name %>

  <br />

  <%= f.label :location, "Location" %>:
  <%= f.text_field :location %>

  <br />

  <%= f.label :gender, "Gender" %>:
  <%= f.text_field :gender %>

  <br />

  <%= f.label :birthday, "Birthday" %>:
  <%= f.text_field :birthday %>

  <br />

  <%= f.label :email, "Email" %>:
  <%= f.text_field :email %>

  <br />

  <%= f.label :url, "URL" %>:
  <%= f.text_field :url %>

  <br />

  <%= f.label :subdomain, "subdomain" %>:
  <%= f.text_field :subdomain %>

  <br />

  <%= submit_tag "Save" %>

<% end -%>

Это обратная трассировка с двумя запросами:

Started GET "/facebook/callback?code=de9cba64ae1a3d1e667a6ad0-563636354%7CFKnAiPEMDocIONSUgkU7L1zDIj0" for 127.0.0.1 at Fri Nov 12 22:06:15 -0800 2010
  Processing by SessionsController#facebook_callback as HTML
  Parameters: {"code"=>"de9cba64ae1a3d1e667a6ad0-563636354|FKnAiPEMDocIONSUgkU7L1zDIj0"}
style_jam_development['users'].find({:email=>"ngw@nofeed.org"}, {}).limit(-1)
Rendered sessions/facebook_callback.html.erb within layouts/application (8.8ms)
Completed 200 OK in 1991ms (Views: 17.5ms)


Started POST "/users/create" for 127.0.0.1 at Fri Nov 12 22:06:19 -0800 2010
  Processing by UsersController#create as HTML
  Parameters: {"commit"=>"Save", "authenticity_token"=>"qW67SXW12n6UZj1ApJi5oy9IqWB6n8BxXmgS70s2VOA=", "utf8"=>"\342\234\223", "user"=>{"location"=>"Seattle, Washington", "url"=>"http://nofeed.org", "gender"=>"male", "subdomain"=>"", "family_name"=>"Wieland", "birthday"=>"1978-12-19", "given_name"=>"Nicholas", "email"=>"ngw@nofeed.org"}}
Completed   in 0ms

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):


Rendered /Users/ngw/.rvm/gems/ree-1.8.7-2010.02/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.8ms)
Rendered /Users/ngw/.rvm/gems/ree-1.8.7-2010.02/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (259.4ms)
Rendered /Users/ngw/.rvm/gems/ree-1.8.7-2010.02/gems/actionpack-3.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (284.8ms)
...