Compare commits

...
2 Commits
Author SHA1 Message Date
radoslaw.smolinski b7d0b01122 1.5.1 2026-09-28 16:01:09 +02:00
radoslaw.smolinski 4627266577 2FA Fix 2026-09-28 16:01:03 +02:00
5 changed files with 27 additions and 8 deletions
+8 -2
View File
@@ -68,8 +68,14 @@ import { buildSeoPlugin, injectAutoFillMeta, injectSeoTabs } from './modules/seo
// node_modules). Avoids TS2307 without @ts-expect-error; the module // node_modules). Avoids TS2307 without @ts-expect-error; the module
// exists at runtime in projects that installed it. // exists at runtime in projects that installed it.
const pkg = '@clocklimited/payload-2fa'; const pkg = '@clocklimited/payload-2fa';
const { totpPlugin } = await import(pkg); const mod = await import(pkg);
config = await totpPlugin({ // The package exports `payloadTotp`; older/other builds may use
// `totpPlugin`. Accept either so a rename doesn't break us.
const totp = mod.payloadTotp ?? mod.totpPlugin;
if (typeof totp !== 'function') {
throw new Error('expected export payloadTotp (or totpPlugin) to be a function — ' + 'check the installed @clocklimited/payload-2fa version');
}
config = await totp({
collection: tf.collectionSlug ?? 'users', collection: tf.collectionSlug ?? 'users',
forceSetup: true, forceSetup: true,
totp: { totp: {
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -1
View File
@@ -253,8 +253,11 @@ sprawdzane przed dostępem do DANYCH, nie tylko UI panelu).
### Zależność ### Zależność
```bash ```bash
pnpm add @clocklimited/payload-2fa pnpm add @clocklimited/payload-2fa@3.0.0-beta.7
``` ```
Uwaga: pakiet nie ma jeszcze stabilnego 3.0.0 — użyj konkretnej wersji beta
(albo `^3.0.0-0`, żeby dopuścić prereleasy). Sam `^3.0.0` da błąd
ERR_PNPM_NO_MATCHING_VERSION.
To PEER dependency — ipal-kit importuje ją dynamicznie tylko gdy 2FA włączone To PEER dependency — ipal-kit importuje ją dynamicznie tylko gdy 2FA włączone
(domyślnie). Bez niej i z włączonym 2FA plugin rzuci jasny błąd. (domyślnie). Bez niej i z włączonym 2FA plugin rzuci jasny błąd.
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@intecion/ipal-kit", "name": "@intecion/ipal-kit",
"version": "1.5.0", "version": "1.5.1",
"description": "Intecion Payload Advanced Library — a Payload CMS 3 plugin: i18n, SEO, forms, consent, analytics, blog/archives.", "description": "Intecion Payload Advanced Library — a Payload CMS 3 plugin: i18n, SEO, forms, consent, analytics, blog/archives.",
"license": "MIT", "license": "MIT",
"repository": { "repository": {
+13 -3
View File
@@ -77,10 +77,20 @@ export const ipalKit = (options: IpalOptions): Plugin => {
// node_modules). Avoids TS2307 without @ts-expect-error; the module // node_modules). Avoids TS2307 without @ts-expect-error; the module
// exists at runtime in projects that installed it. // exists at runtime in projects that installed it.
const pkg = '@clocklimited/payload-2fa' const pkg = '@clocklimited/payload-2fa'
const { totpPlugin } = (await import(pkg)) as { const mod = (await import(pkg)) as {
totpPlugin: (opts: Record<string, unknown>) => Plugin payloadTotp?: (opts: Record<string, unknown>) => Plugin
totpPlugin?: (opts: Record<string, unknown>) => Plugin
} }
config = await totpPlugin({ // The package exports `payloadTotp`; older/other builds may use
// `totpPlugin`. Accept either so a rename doesn't break us.
const totp = mod.payloadTotp ?? mod.totpPlugin
if (typeof totp !== 'function') {
throw new Error(
'expected export payloadTotp (or totpPlugin) to be a function — ' +
'check the installed @clocklimited/payload-2fa version',
)
}
config = await totp({
collection: tf.collectionSlug ?? 'users', collection: tf.collectionSlug ?? 'users',
forceSetup: true, // ENFORCED — every user must set up TOTP; no opt-out forceSetup: true, // ENFORCED — every user must set up TOTP; no opt-out
totp: { issuer: tf.issuer }, totp: { issuer: tf.issuer },