Software /
code /
prosody
File
net/resolvers/manual.lua @ 12997:0a56b84ec4ad
mod_tokenauth: Support for creating sub-tokens
Properties of sub-tokens:
- They share the same id as their parent token
- Sub-tokens may not have their own sub-tokens (but may have sibling tokens)
- They always have the same or shorter lifetime compared to their parent token
- Revoking a parent token revokes all sub-tokens
- Sub-tokens always have the same JID as the parent token
- They do not have their own 'accessed' property - accessing a sub-token
updates the parent token's accessed time
Although this is a generic API, it is designed to at least fill the needs of
OAuth2 refresh + access tokens (where the parent token is the refresh token
and the sub-tokens are access tokens).
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 26 Mar 2023 16:46:48 +0100 |
parent | 12589:39ae08180c81 |
line wrap: on
line source
local methods = {}; local resolver_mt = { __index = methods }; local unpack = table.unpack; -- Find the next target to connect to, and -- pass it to cb() function methods:next(cb) if #self.targets == 0 then cb(nil); return; end local next_target = table.remove(self.targets, 1); cb(unpack(next_target, 1, 4)); end local function new(targets, conn_type, extra) return setmetatable({ conn_type = conn_type; extra = extra; targets = targets or {}; }, resolver_mt); end return { new = new; };