Software /
code /
prosody
File
spec/scansion/issue1121.scs @ 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 | 12100:0b14b541fd27 |
line wrap: on
line source
# When removing roster contact, Prosody should send directed "unavailable" presence but sends global unavailable presence [Client] Romeo jid: romeo@localhost password: password [Client] Juliet jid: juliet@localhost password: password ----- Romeo connects Romeo sends <presence/> Romeo receives <presence from="${Romeo's full JID}"/> Juliet connects Juliet sends <presence/> Juliet receives <presence from="${Juliet's full JID}"/> Romeo sends <presence to="juliet@localhost" type="subscribe"/> Romeo receives <presence from="juliet@localhost" to="romeo@localhost"/> Juliet receives <presence from="romeo@localhost" to="juliet@localhost" type="subscribe"/> Juliet sends <presence to="romeo@localhost" type="subscribed"/> Romeo receives <presence from="${Juliet's full JID}" to="romeo@localhost"/> Juliet sends <presence to="romeo@localhost" type="subscribe"/> Juliet receives <presence from="romeo@localhost" to="juliet@localhost"/> Romeo receives <presence from="juliet@localhost" to="romeo@localhost" type="subscribe"/> Romeo sends <presence to="juliet@localhost" type="subscribed"/> Juliet receives <presence from="${Romeo's full JID}" to="juliet@localhost"/> Romeo receives <presence from="${Juliet's full JID}" to="romeo@localhost"/> Juliet sends <iq type="set" id="iq1"> <query xmlns="jabber:iq:roster"> <item jid="romeo@localhost" subscription="remove"/> </query> </iq> Juliet receives <iq type="result" id="iq1"/> Romeo receives <presence from="${Juliet's full JID}" to="romeo@localhost" type="unavailable"/> Romeo disconnects