From 6afa9f7041b27f5fdb5967c4ecc6db23d084455e Mon Sep 17 00:00:00 2001 From: Dylan Vanmali Date: Sat, 7 Feb 2026 10:02:40 -0800 Subject: [PATCH] feat: export oAuthState for config use --- packages/oauth-provider/src/authorize.ts | 5 +++++ packages/oauth-provider/src/index.ts | 2 +- packages/oauth-provider/src/oauth.ts | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/oauth-provider/src/authorize.ts b/packages/oauth-provider/src/authorize.ts index bd6bd11523..eb9d16e0df 100644 --- a/packages/oauth-provider/src/authorize.ts +++ b/packages/oauth-provider/src/authorize.ts @@ -3,6 +3,7 @@ import { getSessionFromCtx } from "better-auth/api"; import { generateRandomString, makeSignature } from "better-auth/crypto"; import type { Verification } from "better-auth/db"; import { APIError } from "better-call"; +import { oAuthState } from "./oauth"; import type { OAuthAuthorizationQuery, OAuthConsent, @@ -131,6 +132,10 @@ export async function authorizeEndpoint( // Check request const query: OAuthAuthorizationQuery = ctx.query; + await oAuthState.set({ + query: query.toString(), + }); + if (!query.client_id) { throw ctx.redirect( getErrorURL(ctx, "invalid_client", "client_id is required"), diff --git a/packages/oauth-provider/src/index.ts b/packages/oauth-provider/src/index.ts index 1c377c20e6..b38f50400f 100644 --- a/packages/oauth-provider/src/index.ts +++ b/packages/oauth-provider/src/index.ts @@ -5,5 +5,5 @@ export { oauthProviderOpenIdConfigMetadata, oidcServerMetadata, } from "./metadata"; -export { oauthProvider } from "./oauth"; +export { getOAuthProviderState, oauthProvider } from "./oauth"; export type * from "./types"; diff --git a/packages/oauth-provider/src/oauth.ts b/packages/oauth-provider/src/oauth.ts index 375e32cd39..9cc3cd0a55 100644 --- a/packages/oauth-provider/src/oauth.ts +++ b/packages/oauth-provider/src/oauth.ts @@ -41,6 +41,7 @@ declare module "@better-auth/core" { export const oAuthState = defineRequestState<{ query?: string } | null>( () => null, ); +export const getOAuthProviderState = oAuthState.get; /** * oAuth 2.1 provider plugin for Better Auth.