X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/037585db3933a2954b43bd4b30ea5e30ade00be2..6c2093b29d74b145b85e61c4fff09b5f13afa0e5:/app/models/oauth_nonce.rb diff --git a/app/models/oauth_nonce.rb b/app/models/oauth_nonce.rb index 4d615dd5d..9d2773e8f 100644 --- a/app/models/oauth_nonce.rb +++ b/app/models/oauth_nonce.rb @@ -1,3 +1,18 @@ +# == Schema Information +# +# Table name: oauth_nonces +# +# id :integer not null, primary key +# nonce :string +# timestamp :integer +# created_at :datetime +# updated_at :datetime +# +# Indexes +# +# index_oauth_nonces_on_nonce_and_timestamp (nonce,timestamp) UNIQUE +# + # Simple store of nonces. The OAuth Spec requires that any given pair of nonce and timestamps are unique. # Thus you can use the same nonce with a different timestamp and viceversa. class OauthNonce < ActiveRecord::Base @@ -6,8 +21,11 @@ class OauthNonce < ActiveRecord::Base # Remembers a nonce and it's associated timestamp. It returns false if it has already been used def self.remember(nonce, timestamp) - oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp) + return false if Time.now.to_i - timestamp.to_i > 86400 + + oauth_nonce = OauthNonce.create(:nonce => nonce, :timestamp => timestamp.to_i) return false if oauth_nonce.new_record? + oauth_nonce end end