@adonis-agora/authkit-server 0.55.1 → 0.55.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,8 +44,15 @@ export declare function startImpersonation(ctx: HttpContext, params: StartImpers
44
44
  */
45
45
  export declare function impersonationState(ctx: HttpContext): ImpersonationState;
46
46
  /**
47
- * Encerra a impersonation: restaura `account_user_id = impersonator`, limpa TODAS
48
- * as keys de impersonation (impersonator + access token do admin) e regenera a
49
- * sessão (anti-fixation). No-op quando não há impersonation ativa.
47
+ * Encerra a impersonation: restaura `account_user_id = impersonator`, remove a
48
+ * key de impersonation e regenera a sessão (anti-fixation). No-op quando não há
49
+ * impersonation ativa.
50
+ *
51
+ * O `admin_access_token` (a credencial do ADMIN usada como `subject_token` do
52
+ * token-exchange) é PRESERVADO: ele é do admin — não do alvo — e o admin segue
53
+ * logado após o stop. Removê-lo forçava um relogin a cada vez que o admin
54
+ * personificava, saía e tentava personificar de novo (No admin access token in
55
+ * session). O token segue curto (TTL do access token do RP) e o logout do app
56
+ * (`ctx.session.clear()` em `AuthRpController.logout`) continua limpando tudo.
50
57
  */
51
58
  export declare function stopImpersonation(ctx: HttpContext): Promise<void>;
@@ -121,9 +121,16 @@ export function impersonationState(ctx) {
121
121
  return { active: true, targetId, impersonatorId };
122
122
  }
123
123
  /**
124
- * Encerra a impersonation: restaura `account_user_id = impersonator`, limpa TODAS
125
- * as keys de impersonation (impersonator + access token do admin) e regenera a
126
- * sessão (anti-fixation). No-op quando não há impersonation ativa.
124
+ * Encerra a impersonation: restaura `account_user_id = impersonator`, remove a
125
+ * key de impersonation e regenera a sessão (anti-fixation). No-op quando não há
126
+ * impersonation ativa.
127
+ *
128
+ * O `admin_access_token` (a credencial do ADMIN usada como `subject_token` do
129
+ * token-exchange) é PRESERVADO: ele é do admin — não do alvo — e o admin segue
130
+ * logado após o stop. Removê-lo forçava um relogin a cada vez que o admin
131
+ * personificava, saía e tentava personificar de novo (No admin access token in
132
+ * session). O token segue curto (TTL do access token do RP) e o logout do app
133
+ * (`ctx.session.clear()` em `AuthRpController.logout`) continua limpando tudo.
127
134
  */
128
135
  export async function stopImpersonation(ctx) {
129
136
  const impersonatorId = ctx.session.get(IMPERSONATOR_SESSION_KEY);
@@ -139,5 +146,4 @@ export async function stopImpersonation(ctx) {
139
146
  // confirmação dele, sobre a conta dele, dentro da janela dele.
140
147
  ctx.session.put(ACCOUNT_SESSION_KEY, impersonatorId);
141
148
  ctx.session.forget(IMPERSONATOR_SESSION_KEY);
142
- ctx.session.forget(ADMIN_ACCESS_TOKEN_SESSION_KEY);
143
149
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/authkit-server",
3
- "version": "0.55.1",
3
+ "version": "0.55.2",
4
4
  "description": "AdonisJS OIDC/OAuth2 provider (Identity Provider) toolkit: ejectable auth server with sessions, rate-limiting, MFA/TOTP, audit log, federated logout and OpenTelemetry metrics.",
5
5
  "license": "MIT",
6
6
  "author": "dudousxd",