From deaa31ddc00bc67007ad21f064df52f2c678e755 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sun, 5 Nov 2023 16:10:40 +0100 Subject: mod_tokenauth: Fix saving grants after clearing expired tokens Previously the whole grant was deleted if it found one expired toke, which was not indented. --- plugins/mod_tokenauth.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins/mod_tokenauth.lua') diff --git a/plugins/mod_tokenauth.lua b/plugins/mod_tokenauth.lua index 35fb08c5..658aa39d 100644 --- a/plugins/mod_tokenauth.lua +++ b/plugins/mod_tokenauth.lua @@ -166,22 +166,22 @@ local function _get_validated_grant_info(username, grant) token_store:set_key(username, grant.id, nil); return nil, "invalid"; end + + local found_expired = false for secret_hash, token_info in pairs(grant.tokens) do - local found_expired = false if token_info.expires and token_info.expires < now then module:log("debug", "Token has expired, cleaning it up"); grant.tokens[secret_hash] = nil; found_expired = true; end - if found_expired then - token_store:set_key(username, grant.id, nil); - end end if not grant.expires and next(grant.tokens) == nil and grant.accessed + empty_grant_lifetime < now then module:log("debug", "Token grant has no tokens, discarding"); token_store:set_key(username, grant.id, nil); return nil, "expired"; + elseif found_expired then + token_store:set_key(username, grant.id, grant); end return grant; -- cgit v1.2.3