X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/59eebc05b2de2c85033237c06d9474d5072b4d1f..396f2e28dd27d514f7882c3918103b12764038de:/app/models/oauth_nonce.rb diff --git a/app/models/oauth_nonce.rb b/app/models/oauth_nonce.rb index 075351b91..e0510dcbf 100644 --- a/app/models/oauth_nonce.rb +++ b/app/models/oauth_nonce.rb @@ -1,12 +1,13 @@ # 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 - validates_presence_of :nonce, :timestamp - validates_uniqueness_of :nonce, :scope => :timestamp - + validates :timestamp, :presence => true + validates :nonce, :presence => true, :uniqueness => { :scope => :timestamp } + # 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