[Facebooker-talk] form_tag and form_for cause #protect_from_forgery errors

Mike Mangino mmangino at elevatedrails.com
Tue Apr 8 21:06:08 EDT 2008


If you generate an application with Rails 2.0, it will put the  
following section in environment.rb

  # Your secret key for verifying cookie session data integrity.
   # If you change this key, all old sessions will become invalid!
   # Make sure the secret is at least 30 characters and all random,
   # no regular words or you'll be exposed to dictionary attacks.

  config.action_controller.session = {
     :session_key => '_app_session',
     :secret      => 'longstring'
   }

just uncomment the secret and you should be good to go.

Mike

On Apr 8, 2008, at 7:21 PM, BJ Clark wrote:
> Hey All,
>
> I'm trying to do a simple form_for (and I also get it with form_tag)
> and I'm getting the following error:
>
> ActionView::TemplateError (No :secret given to the
> #protect_from_forgery call.  Set that or use a session store capable
> of generating its own keys (Cookie Session Store).) on line #2 of
> users/new.fbml.erb:
> 1: <h1>Welcome To Courses, Let's Get Started.</h1>
> 2: <% form_for :user, user_path, :method => :post do |form| %>
> 3: 	<fb:editor-custom label="You are a">
> 4: 		<label><%= radio_button_tag 'user_type', 'student', true %>
> Student</label>
> 5: 		<label><%= radio_button_tag 'user_type', 'instructor' %>  
> Teacher</
> label>
>
>     vendor/rails/actionpack/lib/action_controller/
> request_forgery_protection.rb:114:in `form_authenticity_token'
>     (eval):2:in `send'
>     (eval):2:in `form_authenticity_token'
>     vendor/rails/actionpack/lib/action_view/helpers/
> form_tag_helper.rb:453:in `token_tag'
>     vendor/rails/actionpack/lib/action_view/helpers/
> form_tag_helper.rb:430:in `extra_tags_for_form'
>     vendor/rails/actionpack/lib/action_view/helpers/
> form_tag_helper.rb:438:in `form_tag_html'
>     vendor/rails/actionpack/lib/action_view/helpers/
> form_tag_helper.rb:41:in `form_tag'
>     vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb:
> 204:in `form_for'
>     app/views/users/new.fbml.erb:2:in
> `_run_erb_47app47views47users47new46fbml46erb'
>
>
> I've got this in my application.rb:
>   config.action_controller.session_store = :active_record_store
>   config.action_controller.session = {
>     :session_key => '_app_session',
>     :secret      => 'xxx'
>   }
>
>
> What's the trick for getting around this?
>
> Thanks,
> BJ Clark
>
> _______________________________________________
> Facebooker-talk mailing list
> Facebooker-talk at rubyforge.org
> http://rubyforge.org/mailman/listinfo/facebooker-talk

--
Mike Mangino
http://www.elevatedrails.com





More information about the Facebooker-talk mailing list