@@ -98,6 +98,8 @@ def create_token(client_id: nil, token: nil, expiry: nil, **token_extras)
9898 expiry : expiry
9999 } . merge! ( token_extras )
100100
101+ clean_old_tokens
102+
101103 [ client_id , token , expiry ]
102104 end
103105
@@ -196,25 +198,19 @@ def build_auth_header(token, client_id='default')
196198
197199 def update_auth_header ( token , client_id = 'default' )
198200 headers = build_auth_header ( token , client_id )
199- while tokens . length > 0 && DeviseTokenAuth . max_number_of_devices < tokens . length
200- oldest_client_id , _tk = tokens . min_by { |_cid , v | v [ :expiry ] || v [ "expiry" ] }
201- tokens . delete ( oldest_client_id )
202- end
203-
201+ clean_old_tokens
204202 save!
205203
206204 headers
207205 end
208206
209-
210207 def build_auth_url ( base_url , args )
211208 args [ :uid ] = uid
212209 args [ :expiry ] = tokens [ args [ :client_id ] ] [ 'expiry' ]
213210
214211 DeviseTokenAuth ::Url . generate ( base_url , args )
215212 end
216213
217-
218214 def extend_batch_buffer ( token , client_id )
219215 self . tokens [ client_id ] [ 'updated_at' ] = Time . zone . now
220216 update_auth_header ( token , client_id )
@@ -257,4 +253,10 @@ def remove_tokens_after_password_reset
257253 end
258254 end
259255
256+ def clean_old_tokens
257+ while tokens . length > 0 && DeviseTokenAuth . max_number_of_devices < tokens . length
258+ oldest_client_id , _tk = tokens . min_by { |_cid , v | v [ :expiry ] || v [ "expiry" ] }
259+ tokens . delete ( oldest_client_id )
260+ end
261+ end
260262end
0 commit comments