Module: Tokens::ActiveRecord::InstanceMethods
- Defined in:
- lib/tokens/active_record.rb
Instance Method Summary collapse
-
#add_token(name, options = {}) ⇒ Object
Add a new token.
-
#find_token(name, token) ⇒ Object
Find a token.
-
#find_token_by_name(name) ⇒ Object
Find token by its name.
-
#find_valid_token(name, token) ⇒ Object
Return
Token
instance when token is valid. -
#remove_token(name) ⇒ Object
Remove token.
-
#valid_token?(name, hash) ⇒ Boolean
Verify if given token is valid.
Instance Method Details
#add_token(name, options = {}) ⇒ Object
Add a new token.
@user.add_token(:api_key, token: 'abc123')
@user.add_token(:api_key, expires_at: nil)
@user.add_token(:api_key, size: 20)
@user.add_token(:api_key, data: {when: Time.now})
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/tokens/active_record.rb', line 143 def add_token(name, ={}) .reverse_merge!({ expires_at: 2.days.from_now, size: 12, data: nil }) remove_token(name) attrs = { name: name.to_s, token: [:token] || self.class.generate_token([:size]), expires_at: [:expires_at], data: .fetch(:data) || {} } self.tokens.create!(attrs) end |
#find_token(name, token) ⇒ Object
Find a token.
@user.find_token(:activation, "abcdefg")
106 107 108 109 110 111 112 |
# File 'lib/tokens/active_record.rb', line 106 def find_token(name, token) self.class.find_token( tokenizable_id: self.id, name: name.to_s, token: token ) end |
#find_token_by_name(name) ⇒ Object
Find token by its name.
115 116 117 |
# File 'lib/tokens/active_record.rb', line 115 def find_token_by_name(name) self.tokens.where(name: name.to_s).first end |
#find_valid_token(name, token) ⇒ Object
Return Token
instance when token is valid.
120 121 122 123 124 |
# File 'lib/tokens/active_record.rb', line 120 def find_valid_token(name, token) token = find_token(name, token) return unless token !token.expired? && token end |
#remove_token(name) ⇒ Object
Remove token.
@user.remove_token(:activate)
130 131 132 133 134 |
# File 'lib/tokens/active_record.rb', line 130 def remove_token(name) return if new_record? token = find_token_by_name(name) token && token.destroy end |
#valid_token?(name, hash) ⇒ Boolean
Verify if given token is valid.
@user.valid_token?(:active, "abcdefg")
98 99 100 |
# File 'lib/tokens/active_record.rb', line 98 def valid_token?(name, hash) self.tokens.where(name: name.to_s, token: hash.to_s).first != nil end |