1572 Commits
Author SHA1 Message Date
Alex YangandValerii Strilets 11493d48c4 feat(stripe): add disableRedirect option for subscription and billing (#7068)
Co-authored-by: Valerii Strilets <valerii.strilets@gmail.com>
2025-12-31 21:36:19 +08:00
cf64f36a40 feat(stripe): handle customer.subscription.created webhook event (#6924)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-12-31 21:36:19 +08:00
Alex Yang 9f242af5a6 docs: fix mcp config name (#7067) 2025-12-31 21:36:19 +08:00
c128d4c8e6 feat(stripe): flexible subscription cancellation and termination management (#6961)
Co-authored-by: GautamBytes <manchandanigautam@gmail.com>
2025-12-31 21:36:19 +08:00
Dylan VanmaliandAlex Yang 49821baed0 fix(oauth-provider): only session db store currently supported (#7000) 2025-12-31 21:36:19 +08:00
3f06dd2ddd feat: support form data for email sign-in/sign-up and fallback to checking fetch Metadata for first login (#6314)
Co-authored-by: Taesu <166604494+bytaesu@users.noreply.github.com>
Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
Co-authored-by: Jonathan Samines <jn.samines@gmail.com>
2025-12-31 21:36:19 +08:00
TaesuandAlex Yang 0ccdf966df fix: correct accountLinking default to true (#6963)
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-12-31 21:36:19 +08:00
Paola Estefanía de CamposandAlex Yang 6e1f41f507 feat(saml): add XML parser hardening with configurable size limits (#6805) 2025-12-31 21:36:19 +08:00
TaesuandAlex Yang 0f519fbfea docs: improve community plugins page (#7031) 2025-12-31 21:36:19 +08:00
TaesuandAlex Yang df3cf91588 docs: improve set active organization guide (#7010) 2025-12-31 21:36:19 +08:00
Alex Yang dde8e6fe1a Revert "feat(multi-session): allow to infer additional fields (#6585)"
This reverts commit 812a648e18.
2025-12-31 21:36:19 +08:00
Alex Yang 4d7d7d5a76 Reapply "docs: add Commet plugin documentation (#6827)"
This reverts commit 380d4c7cae.
2025-12-26 14:46:50 +08:00
TaesuandAlex Yang d858476b7b docs: add notes about cookie cache session revocation (#6966)
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-12-26 14:46:50 +08:00
Joél SolanoandAlex Yang b2d2ea9399 docs(api-key): correct table name in schema section (#6856) 2025-12-26 14:46:49 +08:00
Alex Yangandcubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> af8ffa278d docs: use data table for community plugin list (#6953)
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-12-26 14:46:49 +08:00
Jean-Pierre DUPUISandAlex Yang f92d46dfd0 docs: fix RequestInit body typing for exactOptionalPropertyTypes (#6852) 2025-12-26 14:46:49 +08:00
Dylan VanmaliandAlex Yang ed73775ec8 docs: improve oauth provider setup instructions (#6968) 2025-12-26 14:46:49 +08:00
Dylan VanmaliandAlex Yang 5b831a0901 docs: OAuth Migration improvements (#6964) 2025-12-26 14:46:49 +08:00
Alex Yang b081b7ad4d Revert "docs: add Commet plugin documentation (#6827)"
This reverts commit 0ca1431fc6.
2025-12-23 23:42:55 +08:00
Alex Yang b96c38bddc Merge branch 'canary'
# Conflicts:
#	docs/content/docs/plugins/sso.mdx
#	packages/better-auth/package.json
#	packages/better-auth/src/api/index.ts
#	packages/better-auth/src/api/to-auth-endpoints.test.ts
#	packages/better-auth/src/auth/base.ts
#	packages/better-auth/src/context/create-context.ts
#	packages/better-auth/src/plugins/jwt/index.ts
#	packages/better-auth/src/plugins/multi-session/index.ts
#	packages/better-auth/src/plugins/oauth-proxy/index.ts
#	packages/better-auth/src/plugins/two-factor/index.ts
#	packages/cli/package.json
#	packages/core/package.json
#	packages/core/src/types/init-options.ts
#	packages/expo/package.json
#	packages/oauth-provider/package.json
#	packages/passkey/package.json
#	packages/scim/package.json
#	packages/sso/package.json
#	packages/sso/src/index.ts
#	packages/sso/src/linking/org-assignment.ts
#	packages/stripe/package.json
#	packages/telemetry/package.json
2025-12-23 23:41:56 +08:00
Alexander AsombaandAlex Yang 34e7e50efd docs: add Paystack plugin to community plugins list (#6782) 2025-12-23 23:38:51 +08:00
Alexander AsombaandAlex Yang 75d13a0414 docs: add Paystack plugin to community plugins list (#6782) 2025-12-23 23:38:29 +08:00
285f0527a2 docs: update plugin schema definition (#6951)
Co-authored-by: Mikiyas Tibebu <mikitebe123@gmail.com>
2025-12-23 11:00:18 +00:00
38b24f6ad3 docs: update plugin schema definition (#6951)
Co-authored-by: Mikiyas Tibebu <mikitebe123@gmail.com>
2025-12-23 19:00:03 +08:00
Salih Candirandgithub-actions[bot] 088e753ff0 docs: update file naming example in Next.js integration guide (#6948) 2025-12-23 10:44:33 +00:00
Salih CandirandGitHub 66a6c804f1 docs: update file naming example in Next.js integration guide (#6948) 2025-12-23 18:44:19 +08:00
Paola Estefanía de Camposandgithub-actions[bot] 5bab61c32c feat(saml): reject deprecated SAML signature and digest algorithms (#6784) 2025-12-23 09:41:24 +00:00
Paola Estefanía de CamposandGitHub 1f171cb3fd feat(saml): reject deprecated SAML signature and digest algorithms (#6784) 2025-12-23 17:39:24 +08:00
d067a83113 docs: add Commet plugin documentation (#6827)
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-12-23 09:39:18 +00:00
0ca1431fc6 docs: add Commet plugin documentation (#6827)
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-12-23 17:39:03 +08:00
Taesuandgithub-actions[bot] 5c2180e967 fix: correct wildcard pattern matching for trustedOrigins (#6904) 2025-12-23 06:09:15 +00:00
TaesuandGitHub ae90b482d0 fix: correct wildcard pattern matching for trustedOrigins (#6904) 2025-12-23 14:08:58 +08:00
Dhruv Jainandgithub-actions[bot] 29536bbf18 docs: fix mongodb page join link (#6941) 2025-12-23 04:53:02 +00:00
Dhruv JainandGitHub a0580b78fe docs: fix mongodb page join link (#6941) 2025-12-22 20:52:45 -08:00
d0andgithub-actions[bot] 8637e11826 docs: add stargate to community plugins list (#6846) 2025-12-23 04:41:45 +00:00
d0andGitHub bf71de5f0b docs: add stargate to community plugins list (#6846) 2025-12-23 12:41:31 +08:00
Dylan Vanmaliandgithub-actions[bot] f1b90e4085 feat(oauth-provider): an oauth 2.1 compliant plugin (#4163)
An upgrade to oidc-provider plugin that makes it oauth2.1 compliant and has a configuration that is secure by default.

Plans for the deprecation of oidc-provider plugin due to many inherent flaws in its design. Internally, plugin functions now share logic, providing for better future extensibility if new code_grants need to be written or user/client jwt or opaque tokens need to be written. Furthermore, as an oAuth 2.1 provider, it provides logic valid for an MCP server. When using the scope "openid" (optional, enabled by default), the server acts like an OpenId server able to issue id tokens and provides a /userinfo endpoint.

Features

OAuth 2.1 by default
Properly supports authorization_code, refresh_token, and client_credentials grants
PKCE by default (removes plain completely)
Public and confidential client registration
JWT plugin is required by default, but can be disabled using disableJWTPlugin flag
Access tokens can now be received in JWT verifiable format using the resource parameter (ie JWT aud field)
Id tokens are still verifiable by JWKS when using JWT Plugin, or clientSecret if disabled. Fixes issue to prevent public clients when disableJWTPlugin: true from obtaining id tokens directly even when they shouldn't be allowed an id token and should use /userinfo instead.
Protects /userinfo with scope check
Separates Refresh Token and Access token on database schema to allow multiple access tokens per refresh and multiple refresh tokens per login session.
oauthAccessToken strictly deals with opaque tokens
Opaque tokens are given only when resource parameter (aka audience) is not provided
Option to Encode and Decode refresh tokens
allowDynamicClientRegistration with allowUnauthenticatedClientRegistration flags
Separation of default expiration times
Proper creation of public and confidential clients
Prevents misconfiguration between .well-known/openid-configuration endpoint and plugin settings
scopeExpirations to assign scopes specific expiration
Custom claims through separated functions: customAccessTokenClaims, customIdTokenClaims, and customUserInfoClaims
Organizational support through activeOrganizationalId on a session such as through the organizational plugin. Attaches to oAuthClient via reference_id.
Rp-initiated logout
Account Selection via prompt=select_account.
Account Creation via prompt=create.
Prompt combinations prompt=select_account+consent and prompt=login+consent

Docs available at https://www.better-auth.com/docs/plugins/oauth-provider (pr: https://github.com/better-auth/better-auth/blob/main/docs/content/docs/plugins/oauth-provider.mdx)
2025-12-22 19:16:54 +00:00
Dylan VanmaliandGitHub 686fba4e11 feat(oauth-provider): an oauth 2.1 compliant plugin (#4163)
An upgrade to oidc-provider plugin that makes it oauth2.1 compliant and has a configuration that is secure by default.

Plans for the deprecation of oidc-provider plugin due to many inherent flaws in its design. Internally, plugin functions now share logic, providing for better future extensibility if new code_grants need to be written or user/client jwt or opaque tokens need to be written. Furthermore, as an oAuth 2.1 provider, it provides logic valid for an MCP server. When using the scope "openid" (optional, enabled by default), the server acts like an OpenId server able to issue id tokens and provides a /userinfo endpoint.

Features

OAuth 2.1 by default
Properly supports authorization_code, refresh_token, and client_credentials grants
PKCE by default (removes plain completely)
Public and confidential client registration
JWT plugin is required by default, but can be disabled using disableJWTPlugin flag
Access tokens can now be received in JWT verifiable format using the resource parameter (ie JWT aud field)
Id tokens are still verifiable by JWKS when using JWT Plugin, or clientSecret if disabled. Fixes issue to prevent public clients when disableJWTPlugin: true from obtaining id tokens directly even when they shouldn't be allowed an id token and should use /userinfo instead.
Protects /userinfo with scope check
Separates Refresh Token and Access token on database schema to allow multiple access tokens per refresh and multiple refresh tokens per login session.
oauthAccessToken strictly deals with opaque tokens
Opaque tokens are given only when resource parameter (aka audience) is not provided
Option to Encode and Decode refresh tokens
allowDynamicClientRegistration with allowUnauthenticatedClientRegistration flags
Separation of default expiration times
Proper creation of public and confidential clients
Prevents misconfiguration between .well-known/openid-configuration endpoint and plugin settings
scopeExpirations to assign scopes specific expiration
Custom claims through separated functions: customAccessTokenClaims, customIdTokenClaims, and customUserInfoClaims
Organizational support through activeOrganizationalId on a session such as through the organizational plugin. Attaches to oAuthClient via reference_id.
Rp-initiated logout
Account Selection via prompt=select_account.
Account Creation via prompt=create.
Prompt combinations prompt=select_account+consent and prompt=login+consent

Docs available at https://www.better-auth.com/docs/plugins/oauth-provider (pr: https://github.com/better-auth/better-auth/blob/main/docs/content/docs/plugins/oauth-provider.mdx)
2025-12-22 11:16:42 -08:00
3e28ee00ea feat: add a global backgroundTasks config option to defer actions like sending email and updates to run after response is sent (#6713)
Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-12-20 19:43:16 +00:00
d544ba97f9 feat: add a global backgroundTasks config option to defer actions like sending email and updates to run after response is sent (#6713)
Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-12-20 11:43:03 -08:00
14414c67a8 docs(organization): update default organization limit to 'unlimited' (#6808)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-20 15:38:26 +00:00
30dc04b12f docs(organization): update default organization limit to 'unlimited' (#6808)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-20 07:38:11 -08:00
999a830b6f docs: clarify username sign-in functionality in documentation (#6901)
Co-authored-by: Jilles Soeters <jilleswf@gmail.com>
2025-12-20 08:17:18 +00:00
6743a7a84b docs: clarify username sign-in functionality in documentation (#6901)
Co-authored-by: Jilles Soeters <jilleswf@gmail.com>
2025-12-20 16:17:04 +08:00
vijit-larkandgithub-actions[bot] 92e8eca03d docs: add community plugin Lark billing (#6813) 2025-12-20 02:06:36 +00:00
vijit-larkandGitHub cfb56fdab4 docs: add community plugin Lark billing (#6813) 2025-12-19 18:06:23 -08:00
Mauricio Galvezandgithub-actions[bot] bf6b225e7c docs: fix typo in Organization plugin docs (#6885) 2025-12-20 00:41:21 +00:00
Mauricio GalvezandGitHub becb4e96ee docs: fix typo in Organization plugin docs (#6885) 2025-12-19 16:41:04 -08:00
Paola Estefanía de Camposandgithub-actions[bot] f58d9b98c9 doc(auth): clarify trustedOrigins callback request parameter (#6890) 2025-12-20 00:40:52 +00:00
Paola Estefanía de CamposandGitHub 65193cb56d doc(auth): clarify trustedOrigins callback request parameter (#6890) 2025-12-19 16:40:37 -08:00