Data securely stored in urls.
Great for:
gem install url_store
When on Rails, create config/initializers/url_store.rb using generator. A random secret will be generated for you:
rails generate url_store:initializer
Or configure it by hand (e.g in environment.rb):
UrlStore.defaults = {:secret => 'adadasd2adsdasd4ads4eas4dea4dsea4sd'}
In Rails views:
<%= link_to 'paid', :controller =>:payments, :action=>:paid, :data=>UrlStore.encode(:id=>1, :status=>'paid') %>
In controllers:
if data = UrlStore.decode(params[:data])
Payment.find(data[:id]).update_attribute(:status, data[:status])
else
raise 'FRAUD!'
end
UrlStore.defaults = {:secret => 'something random'} # ALWAYS use your own secret
UrlStore.defaults = {... , :hasher => 'MD5'} # default: 'SHA1'
UrlStore.defaults = {... , :serializer => :yaml} # default: :marshal
Rails.application.message_verifier
, it provides a similar featureUrlStore.new(:secret => 'sadasd', ...)
Michael Grosser [email protected] License: MIT