[PR #5914] [MERGED] refactor: initFn for defineRequestState #31918

Closed
opened 2026-04-17 22:47:53 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/5914
Author: @himself65
Created: 11/11/2025
Status: Merged
Merged: 11/11/2025
Merged by: @himself65

Base: canaryHead: himself65/2025/11/11/handle


📝 Commits (7)

📊 Changes

9 files changed (+57 additions, -289 deletions)

View changed files

📝 packages/better-auth/src/api/middlewares/oauth.ts (+1 -1)
📝 packages/better-auth/src/plugins/oidc-provider/authorize.ts (+5 -2)
📝 packages/better-auth/src/plugins/oidc-provider/index.ts (+2 -2)
📝 packages/better-auth/src/plugins/oidc-provider/middlewares/check-prompt.ts (+1 -3)
packages/better-auth/src/plugins/oidc-provider/state/prompt-handled.ts (+5 -0)
📝 packages/better-auth/src/social.test.ts (+11 -11)
📝 packages/better-auth/test/oauth.spec.ts (+1 -1)
📝 packages/core/src/context/request-state.test.ts (+2 -254)
📝 packages/core/src/context/request-state.ts (+29 -15)

📄 Description

Summary by cubic

Refactored request-scoped state to use an init function with automatic defaults, simplifying the API and fixing OIDC login prompt handling without leaking state between requests.

  • Refactors

    • Replaced defineRequestState(schema) with defineRequestState(initFn); get() auto-initializes.
    • Store keys are now unique ref objects (exposed via ref).
    • Removed schema-based validation and Zod usage.
    • OAuth state defaults to null; prompt set defaults to an empty Set.
    • OIDC login prompt flow now uses request state (get/setPromptHandled) instead of ctx.context flags.
  • Migration

    • Replace defineRequestState(schema) with defineRequestState(() => initialValue).
    • Perform your own validation if needed (schema validation removed).
    • Update getOAuthState consumers to handle null results.
    • Use getPromptHandled/setPromptHandled instead of ctx.context.oidcLoginPromptHandled.

Written for commit 5627397147. Summary will update automatically on new commits.


🔄 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/5914 **Author:** [@himself65](https://github.com/himself65) **Created:** 11/11/2025 **Status:** ✅ Merged **Merged:** 11/11/2025 **Merged by:** [@himself65](https://github.com/himself65) **Base:** `canary` ← **Head:** `himself65/2025/11/11/handle` --- ### 📝 Commits (7) - [`783e8da`](https://github.com/better-auth/better-auth/commit/783e8da208f99c460dd7b9cb7d9da70613d9db8d) refactor: initFn for `defineRequestState` - [`e62d032`](https://github.com/better-auth/better-auth/commit/e62d032bf8e975049666986146b3d778e9878963) fix: type - [`350d41a`](https://github.com/better-auth/better-auth/commit/350d41a363d0beea009ae1172b9de3b3816b8c9d) chore: type improve - [`e84f631`](https://github.com/better-auth/better-auth/commit/e84f631b8a5e7f79298afff953c4b513798eeb7e) fix: use has - [`e446309`](https://github.com/better-auth/better-auth/commit/e4463095f7575c163258f0c8867407f7ba3e41de) feat: update comments - [`5627397`](https://github.com/better-auth/better-auth/commit/56273971477794b5e8a4d66e27b0d21bb8b7cbd7) chore: update comment - [`d13f70a`](https://github.com/better-auth/better-auth/commit/d13f70a0264c1c0cd12f1764ebd6bc4aa9de6f52) fix: unused ! ### 📊 Changes **9 files changed** (+57 additions, -289 deletions) <details> <summary>View changed files</summary> 📝 `packages/better-auth/src/api/middlewares/oauth.ts` (+1 -1) 📝 `packages/better-auth/src/plugins/oidc-provider/authorize.ts` (+5 -2) 📝 `packages/better-auth/src/plugins/oidc-provider/index.ts` (+2 -2) 📝 `packages/better-auth/src/plugins/oidc-provider/middlewares/check-prompt.ts` (+1 -3) ➕ `packages/better-auth/src/plugins/oidc-provider/state/prompt-handled.ts` (+5 -0) 📝 `packages/better-auth/src/social.test.ts` (+11 -11) 📝 `packages/better-auth/test/oauth.spec.ts` (+1 -1) 📝 `packages/core/src/context/request-state.test.ts` (+2 -254) 📝 `packages/core/src/context/request-state.ts` (+29 -15) </details> ### 📄 Description <!-- This is an auto-generated description by cubic. --> ## Summary by cubic Refactored request-scoped state to use an init function with automatic defaults, simplifying the API and fixing OIDC login prompt handling without leaking state between requests. - **Refactors** - Replaced defineRequestState(schema) with defineRequestState(initFn); get() auto-initializes. - Store keys are now unique ref objects (exposed via ref). - Removed schema-based validation and Zod usage. - OAuth state defaults to null; prompt set defaults to an empty Set. - OIDC login prompt flow now uses request state (get/setPromptHandled) instead of ctx.context flags. - **Migration** - Replace defineRequestState(schema) with defineRequestState(() => initialValue). - Perform your own validation if needed (schema validation removed). - Update getOAuthState consumers to handle null results. - Use getPromptHandled/setPromptHandled instead of ctx.context.oidcLoginPromptHandled. <sup>Written for commit 56273971477794b5e8a4d66e27b0d21bb8b7cbd7. Summary will update automatically on new commits.</sup> <!-- End of auto-generated description by cubic. --> --- <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-04-17 22:47:53 -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#31918