Software /
code /
prosody
Comparison
plugins/mod_tokenauth.lua @ 13275:5db61e0dfc62
mod_tokenauth: Save grant after removing expired tokens
Ensures the periodic cleanup really does remove expired tokens.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 21 Oct 2023 12:33:55 +0200 |
parent | 13274:ddfe07041fc5 |
child | 13276:c34266c061c9 |
comparison
equal
deleted
inserted
replaced
13274:ddfe07041fc5 | 13275:5db61e0dfc62 |
---|---|
165 module:log("debug", "Token grant without tokens, cleaning up"); | 165 module:log("debug", "Token grant without tokens, cleaning up"); |
166 token_store:set_key(username, grant.id, nil); | 166 token_store:set_key(username, grant.id, nil); |
167 return nil, "invalid"; | 167 return nil, "invalid"; |
168 end | 168 end |
169 for secret_hash, token_info in pairs(grant.tokens) do | 169 for secret_hash, token_info in pairs(grant.tokens) do |
170 local found_expired = false | |
170 if token_info.expires and token_info.expires < now then | 171 if token_info.expires and token_info.expires < now then |
171 module:log("debug", "Token has expired, cleaning it up"); | 172 module:log("debug", "Token has expired, cleaning it up"); |
172 grant.tokens[secret_hash] = nil; | 173 grant.tokens[secret_hash] = nil; |
174 found_expired = true; | |
175 end | |
176 if found_expired then | |
177 token_store:set_key(username, grant.id, nil); | |
173 end | 178 end |
174 end | 179 end |
175 | 180 |
176 if not grant.expires and next(grant.tokens) == nil and grant.accessed + empty_grant_lifetime < now then | 181 if not grant.expires and next(grant.tokens) == nil and grant.accessed + empty_grant_lifetime < now then |
177 module:log("debug", "Token grant has no tokens, discarding"); | 182 module:log("debug", "Token grant has no tokens, discarding"); |