[PR #8326] feat(core): add namespace parameter to verification adapter methods #7902

Open
opened 2026-03-13 13:52:42 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/8326
Author: @himself65
Created: 3/3/2026
Status: 🔄 Open

Base: canaryHead: himself65/verification-namespace


📝 Commits (1)

  • 0cb0149 feat(core): add namespace parameter to verification adapter methods

📊 Changes

33 files changed (+885 additions, -524 deletions)

View changed files

📝 packages/better-auth/src/api/routes/password.ts (+19 -10)
📝 packages/better-auth/src/api/routes/update-user.ts (+17 -12)
📝 packages/better-auth/src/db/internal-adapter.test.ts (+239 -143)
📝 packages/better-auth/src/db/internal-adapter.ts (+37 -15)
📝 packages/better-auth/src/plugins/email-otp/email-otp.test.ts (+13 -9)
📝 packages/better-auth/src/plugins/email-otp/index.ts (+8 -5)
📝 packages/better-auth/src/plugins/email-otp/routes.ts (+115 -63)
📝 packages/better-auth/src/plugins/magic-link/index.ts (+14 -5)
📝 packages/better-auth/src/plugins/magic-link/magic-link.test.ts (+8 -4)
📝 packages/better-auth/src/plugins/mcp/authorize.ts (+31 -28)
📝 packages/better-auth/src/plugins/mcp/index.ts (+3 -0)
📝 packages/better-auth/src/plugins/oauth-proxy/index.ts (+1 -0)
📝 packages/better-auth/src/plugins/oidc-provider/authorize.ts (+28 -25)
📝 packages/better-auth/src/plugins/oidc-provider/index.ts (+6 -0)
📝 packages/better-auth/src/plugins/one-time-token/index.ts (+12 -7)
📝 packages/better-auth/src/plugins/one-time-token/one-time-token.test.ts (+4 -2)
📝 packages/better-auth/src/plugins/phone-number/routes.ts (+36 -17)
📝 packages/better-auth/src/plugins/siwe/index.ts (+12 -7)
📝 packages/better-auth/src/plugins/test-utils/index.ts (+6 -5)
📝 packages/better-auth/src/plugins/two-factor/index.ts (+23 -14)

...and 13 more files

📄 Description

Summary

  • Add a required namespace: string parameter to all 4 verification adapter methods (createVerificationValue, findVerificationValue, deleteVerificationByIdentifier, updateVerificationByIdentifier)
  • The adapter auto-prefixes identifiers as namespace:identifier, centralizing what was previously ad-hoc inline prefixing (e.g., reset-password:${token}, 2fa-otp-${key}) across all call sites
  • All existing call sites updated: inline prefixes extracted into the namespace parameter, leaving identifiers clean

Namespace mapping

Namespace Used by
state OAuth state
reset-password Password reset tokens
delete-account Account deletion tokens
magic-link Magic link tokens
${type}-otp Email OTP (sign-in, email-verification, etc.)
forget-password-otp Password reset OTP
change-email-otp Change email OTP
email-verification-otp Email verification OTP
phone-number Phone number verification
phone-number-password-reset Phone password reset
2fa-otp Two-factor OTP
2fa Two-factor session cookie
trust-device Trust device tokens
one-time-token One-time tokens
siwe Sign-In with Ethereum
oidc-code OIDC provider + MCP authorization codes
oauth-authorization-code OAuth provider codes
electron Electron plugin
passkey Passkey verification
saml-authn-request SSO SAML auth requests
saml-used-assertion SSO SAML replay protection
saml-session SSO SAML sessions
saml-session-by-id SSO SAML session lookup
saml-logout-request SSO SAML logout

Test plan

  • pnpm typecheck passes
  • pnpm lint passes
  • 590 tests pass across 29 test suites covering all affected packages
  • internal-adapter, magic-link, email-otp, phone-number, two-factor, one-time-token, siwe, oidc-provider, mcp, passkey, electron, expo, oauth-provider, sso, magic-link-secondary-storage tests all verified

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/8326 **Author:** [@himself65](https://github.com/himself65) **Created:** 3/3/2026 **Status:** 🔄 Open **Base:** `canary` ← **Head:** `himself65/verification-namespace` --- ### 📝 Commits (1) - [`0cb0149`](https://github.com/better-auth/better-auth/commit/0cb01490d9bb07f3a576f61f408fdf1268c15045) feat(core): add namespace parameter to verification adapter methods ### 📊 Changes **33 files changed** (+885 additions, -524 deletions) <details> <summary>View changed files</summary> 📝 `packages/better-auth/src/api/routes/password.ts` (+19 -10) 📝 `packages/better-auth/src/api/routes/update-user.ts` (+17 -12) 📝 `packages/better-auth/src/db/internal-adapter.test.ts` (+239 -143) 📝 `packages/better-auth/src/db/internal-adapter.ts` (+37 -15) 📝 `packages/better-auth/src/plugins/email-otp/email-otp.test.ts` (+13 -9) 📝 `packages/better-auth/src/plugins/email-otp/index.ts` (+8 -5) 📝 `packages/better-auth/src/plugins/email-otp/routes.ts` (+115 -63) 📝 `packages/better-auth/src/plugins/magic-link/index.ts` (+14 -5) 📝 `packages/better-auth/src/plugins/magic-link/magic-link.test.ts` (+8 -4) 📝 `packages/better-auth/src/plugins/mcp/authorize.ts` (+31 -28) 📝 `packages/better-auth/src/plugins/mcp/index.ts` (+3 -0) 📝 `packages/better-auth/src/plugins/oauth-proxy/index.ts` (+1 -0) 📝 `packages/better-auth/src/plugins/oidc-provider/authorize.ts` (+28 -25) 📝 `packages/better-auth/src/plugins/oidc-provider/index.ts` (+6 -0) 📝 `packages/better-auth/src/plugins/one-time-token/index.ts` (+12 -7) 📝 `packages/better-auth/src/plugins/one-time-token/one-time-token.test.ts` (+4 -2) 📝 `packages/better-auth/src/plugins/phone-number/routes.ts` (+36 -17) 📝 `packages/better-auth/src/plugins/siwe/index.ts` (+12 -7) 📝 `packages/better-auth/src/plugins/test-utils/index.ts` (+6 -5) 📝 `packages/better-auth/src/plugins/two-factor/index.ts` (+23 -14) _...and 13 more files_ </details> ### 📄 Description ## Summary - Add a required `namespace: string` parameter to all 4 verification adapter methods (`createVerificationValue`, `findVerificationValue`, `deleteVerificationByIdentifier`, `updateVerificationByIdentifier`) - The adapter auto-prefixes identifiers as `namespace:identifier`, centralizing what was previously ad-hoc inline prefixing (e.g., `reset-password:${token}`, `2fa-otp-${key}`) across all call sites - All existing call sites updated: inline prefixes extracted into the namespace parameter, leaving identifiers clean ### Namespace mapping | Namespace | Used by | |-----------|---------| | `state` | OAuth state | | `reset-password` | Password reset tokens | | `delete-account` | Account deletion tokens | | `magic-link` | Magic link tokens | | `${type}-otp` | Email OTP (sign-in, email-verification, etc.) | | `forget-password-otp` | Password reset OTP | | `change-email-otp` | Change email OTP | | `email-verification-otp` | Email verification OTP | | `phone-number` | Phone number verification | | `phone-number-password-reset` | Phone password reset | | `2fa-otp` | Two-factor OTP | | `2fa` | Two-factor session cookie | | `trust-device` | Trust device tokens | | `one-time-token` | One-time tokens | | `siwe` | Sign-In with Ethereum | | `oidc-code` | OIDC provider + MCP authorization codes | | `oauth-authorization-code` | OAuth provider codes | | `electron` | Electron plugin | | `passkey` | Passkey verification | | `saml-authn-request` | SSO SAML auth requests | | `saml-used-assertion` | SSO SAML replay protection | | `saml-session` | SSO SAML sessions | | `saml-session-by-id` | SSO SAML session lookup | | `saml-logout-request` | SSO SAML logout | ## Test plan - [x] `pnpm typecheck` passes - [x] `pnpm lint` passes - [x] 590 tests pass across 29 test suites covering all affected packages - [x] internal-adapter, magic-link, email-otp, phone-number, two-factor, one-time-token, siwe, oidc-provider, mcp, passkey, electron, expo, oauth-provider, sso, magic-link-secondary-storage tests all verified --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-13 13:52:42 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#7902