mirror of
https://github.com/better-auth/better-auth.git
synced 2026-10-18 11:32:15 -05:00
[GH-ISSUE #6284] v1.4.1 - [oidc-provider] /oauth2/userinfo always returns 401 during oauth flows
#10470
Closed
opened 2026-04-13 06:38:26 -05:00 by GiteaMirror
·
2 comments
No Branch/Tag Specified
dependabot/npm_and_yarn/demo/electron/demo-minor-patch-64ddd28b13
dependabot/github_actions/github-actions-87ac2fb667
2026-10-17/fix/oidc-token-validation
changeset-release/main
main
starsling/prisma-migration-reset
starsling/drizzle-kit-push-util
2026-10-16/fix/discord-profile-types
2026-10-16/fix/spotify-profile-types
2026-10-16/fix/paybin-profile-types
2026-10-16/fix/notion-profile-types
2026-10-16/fix/kakao-profile-types
2026-10-16/fix/linear-profile-types
2026-10-16/fix/gitlab-profile-types
2026-10-16/fix/twitter-profile-types
2026-10-16/fix/slack-profile-types
2026-10-16/fix/zoom-login-types
2026-10-16/fix/twitch-profile-types
2026-10-16/fix/google-profile-types
2026-10-16/fix/dropbox-profile-types
2026-10-16/fix/huggingface-profile-types
2026-10-16/fix/cognito-profile-data
2026-10-16/fix/polar-profile-data
2026-10-15/fix/github-profile-types
2026-10-16/fix/patreon-profile-data
2026-10-16/fix/apple-profile-types
docs-sync/next
next
2026-10-16/fix/gumroad-profile-data
2026-10-16/fix/paypal-profile-types
2026-10-16/fix/roblox-profile-types
2026-10-16/fix/railway-profile-types
2026-10-16/fix/naver-profile-types
2026-10-16/fix/facebook-profile-types
2026-10-16/fix/vk-profile-types
2026-10-16/fix/linkedin-profile-types
2026-10-16/fix/microsoft-token-claims
2026-10-16/fix/kick-profile-types
feat/oauth-provider-consent-time-client-ownership
2026-10-13/fix/schema-validation-recovery
gus/oauth-provider-client-secret-expiry
feat/id-token-issued-nonce
gus/prisma-insensitive-keyed-update
gus/prisma-mongodb-regex-escape
gus/prisma-mongodb-eq-null-unset
dependabot/npm_and_yarn/undici-8.11.2
dependabot/npm_and_yarn/next-16.3.8
dependabot/npm_and_yarn/modelcontextprotocol/client-2.2.0
gus/introspect-hint-fallback
refactor/oauth-provider-rotation-precheck
gus/sso-email-less-profiles
gus/sso-remove-dead-acs-lookup
changeset-release/v1.6.x
v1.6.x
2026-10-13/feat/integrate-rate-limit-engine
2026-08-12/feat/add-rate-limit-engine
2026-10-03/fix/stripe-redirect-urls
2026-10-03/fix/oauth-endpoint-urls
2026-10-03/fix/sso-callback-urls
2026-10-03/fix/authentication-urls
2026-10-03/fix/social-provider-urls
2026-10-03/feat/url-path-composition
gus/workerd-static-async-hooks
dependabot/npm_and_yarn/demo/electron/demo-minor-patch-f5235d3538
2026-10-10/test/d1-migration-race
2026-10-10/fix/api-key-verification-errors
dependabot/npm_and_yarn/simplewebauthn/server-13.3.2
fix/oauth-callback-token-exchange-logging
2026-10-01/feat/http-hook-lifecycle
fix/core-retry-failed-init
fix/magic-link-verify-redirect-session-errors
fix/session-cache-null-user
fix/session-refresh-post-json-body
feat/ssrf-fetch-boundary
docs/device-approval-context
fix/homepage-demo-video-loading
2026-09-26/feat/jwt-jwk-alg
2026-09-25/fix/avoid-duplicate-schema-output
backport-11283-to-v1.6.x
backport-11290-to-v1.6.x
2026-09-19/fix/stripe-schedule-billing-anchor
2026-09-16/feat/host-cookie-security
backport-11224-to-v1.6.x
2026-09-17/fix/propagate-sign-out-errors
2026-09-09/fix/expo-utf8-storage-chunks
docs/1-7-account-cleanup-guide
fix/react-server-snapshot
fix/oauth-provider-dcr-grants
fix/mongo-objectid-normalize
fix/cookies-host-prefix
fix/two-factor-enable-race
fix/oauth-state-ttl
feat/schema-validation
fix/sso-discovery-ssrf-guard
fix/one-tap-nonce
fix/optional-atomic-adapter-methods
feat/provider-scoped-accounts
2026-09-04/fix/remove-identity-warning
2026-09-04/refactor/account-identity-scope
2026-09-04/fix/mixed-identity-remediation
2026-09-04/test/cloudflare-strict-lib-check
2026-08-27/docs/add-markdown-routes
2026-08-27/refactor/share-api-method-rendering
2026-08-26/feat/versioned-docs
feat/adapter-migration-boundary
feat/account-identity-plan-reporting
2026-08-22/fix/respect-configured-logger
2026-08-19/fix/mysql-disabled-index-introspection
2026-08-18/refactor/simplify-cloudflare-fixture
2026-08-19/ci/stabilize-mssql-startup
docs/1-7-release
2026-08-14/fix/standardize-plugin-types
2026-08-13/fix/acr-values-voluntary
refactor/device-authorization-oauth-boundary
2026-08-11/fix/api-key-rate-limit-window
feat/oauth-provider-custom-subject
pr-9793-merge
2026-07-31/chore/bump-better-call
2026-07-30/chore/upgrade-better-call
2026-07-30/fix/nextjs-rsc-session-refresh
2026-07-29/refactor/centralize-placeholder-email-generation
refactor/oauth-client-application-type
2026-07-28/fix/anonymous-oauth-proxy-linking
feat/agent-feedback-endpoint
fix/oauth-provider-session-deletion
feat/scim-demo-workflow
feat/scim-active-user-link
feat/sso-provider-user-resolution
feat/identity-provider-accounts
feat/oauth-provider-remove-silence-warnings
changeset-release/release/vercel-announcement
release/vercel-announcement
2026-06-29/docs/optimize-og-images
feat/yandex-social-provider
codex/pr-10225-next-comments
fix/phone-number-disable-input
perf/router-build-once
fix/oauth-user-provisioning-fields
codex/ignore-compose-override-spellcheck
2026-06-19/fix/stripe-org-reference-scope
feat/webhooks
feat/baseurl-canonical-serving-split
feat/magic-link-expires-in
fix/esbuild-security-bump
chore/sync-main-to-next-20260615
chore/revert-10053
codex/fix-expo-sdk56-dynamic-import
refactor/oauth-provider-client-authentication-module
fix/oauth-no-store-headers
claude/slack-update-stripe-docs-consistency-8Sc0w
local/fix-invite-accept-idempotency
docs/beta-mdx-component-fallback
fix/dependabot-hono-shell-quote
codex/stateless-account-cookie-resolution
fix/admin-create-user-role-escalation
feat/oauth-provider-oidc-acr
refactor/sign-in-challenges
refactor/optional-kysely-dependency
2026-06-06/chore/kysely-changeset
copilot/fix-code-review-comment
2026-06-02/fix/next-cookies-defer-rsc
feat/oauth-contribution-protocol
ping-maxwell/c-ping-maxwell/fix-kysely-adapter-core-utils-string-resolution-68c5
temp/server-only-test
2026-05-31/refactor/kysely-joins-json-helpers
2026-04-29/feat/google-include-granted-scopes
2026-04-29/fix/oauth-account-scope-semantics
fix/oauth-callback-path-declarative
2026-05-31/fix/sqlite-dialect-affected-rows
fix/next-cookie-separator
2026-05-29/fix/last-login-method-cookie-prefix
ping-maxwell/c-ping-maxwell/fix-error-link-apostrophe-f89a
client-assertions-main
2026-05-15/ci/fix-sqlite-abi-mismatch
2026-05-15/fix/organization-team-add-cascade
2026-05-15/fix/parse-set-cookie-value-validation
2026-05-13/feat/captcha-wildcard-endpoints
fix/i18n-before-hook-translation
fix/disable-migration-generate
2026-05-10/fix/cookie-drain-order
2026-05-10/feat/hooks-finally
2026-05-09/fix/cookie-drain-order
2026-05-09/feat/hooks-finally
2026-05-08/feat/register-before-send
fix/stripe/subscription-data-merge
2026-05-01/chore/pnpm-v11-harden
chore/pnpm-v11
2026-04-27/fix/nextcookies-idempotent-writes
2026-04-26/fix/harden-proxy-host-validation
2026-04-26/refactor/stripe-callback-signature-cleanup
2026-04-26/fix/stripe-subscription-callback-timing
2026-04-11/fix/sveltekit-app-modules
feat/open-api-zod-contract
feat/oauth-idp-initiated-bounce
2026-04-21/fix/oauth-rfc-input-validation
fix/two-factor-identity-guard
fix/resource
feat/emailpassword-authorize
feat/oauth-provider-at-hash-v2
fix/release-grep-fallback
claude/address-review-comments-JhFLr
feat/async-auth
fix/two-factor-totp-verified-enrollment
feat/plugin-ui
codex/blog-1-6-release-post
2026-04-06/fix/type-any-guards
2026-04-05/chore/downgrade-better-call
2026-04-04/ci/skip-vercel-fork-prs
2026-03-28/ci/add-autofix-ci
chore/release-preview-script
himself65/2026/02/19/role
2026-03-20/docs/improve-website
v1.5.x
2026-03-20/fix/anonymous-onlinkaccount-expo
2026-02-17/fix/anonymous-link-state
fix/8607-saml-inresponseto
fix/8549-scim-patch-noop
v1.4.x
refactor/migration-snapshot-tests
worktree-magic-link-additional-data
chore/migrate-build-to-rollup
worktree-fix-dynamic-baseurl-8447
2026-03-06/chore/public-api-check
fix/close-8156-regression-test
fix/secondary-storage-json-error-handling
himself65/verification-namespace
cursor/issue-8307-validation-79a3
himself65/2026/01/30/error-mdx
v1.4.x-staging
fix/email-otp-user
fix/restrict-full-organization-access-roles
himself65/2026/02/12/count
himself65/2026/02/04/define-plugin
2026-02-04/feat/add-pluralize
cursor/better-auth-js-integration-ec21
cursor/expo-state-mismatch-394c
2026-02-01/fix/org-update-role-sync-members
cursor/issue-7607-investigation-e146
cursor/email-generation-helper-0ff6
himself65/2026/01/21/avoid-spread-operator
himself65/2026/01/14/cli
claude/slack-add-advanced-useplural-WHKYL
feat/hooks-pos
feat/2fa-phone
feat/2fa
fix/rotation
fix/username-check
v1.3.x
refactor/organization
feat/multiple-client-ids-social-providers
v1.8.0-beta.1
v1.8.0-beta.0
v1.7.10
v1.7.9
v1.7.8
v1.7.7
v1.7.6
v1.7.5
v1.6.33
v1.6.32
v1.7.4
v1.6.31
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.6.30
v1.7.0-rc.6
v1.6.29
v1.6.28
v1.7.0-rc.5
v1.6.27
v1.7.0-rc.4
v1.6.26
v1.7.0-rc.3
v1.6.25
v1.7.0-rc.2
v1.6.24
v1.7.0-rc.1
v1.6.23
v1.7.0-rc.0
v1.7.0-beta.10
v1.6.22
v1.6.21
v1.6.20
v1.7.0-beta.9
v1.7.0-beta.8
v1.7.0-beta.7
v1.7.0-beta.6
v1.6.19
v1.6.18
v1.6.17
better-auth@1.7.0-beta.5
auth@1.7.0-beta.5
@better-auth/test-utils@1.7.0-beta.5
@better-auth/telemetry@1.7.0-beta.5
@better-auth/stripe@1.7.0-beta.5
@better-auth/sso@1.7.0-beta.5
@better-auth/scim@1.7.0-beta.5
@better-auth/redis-storage@1.7.0-beta.5
@better-auth/prisma-adapter@1.7.0-beta.5
@better-auth/passkey@1.7.0-beta.5
@better-auth/oauth-provider@1.7.0-beta.5
@better-auth/mongo-adapter@1.7.0-beta.5
@better-auth/memory-adapter@1.7.0-beta.5
@better-auth/kysely-adapter@1.7.0-beta.5
@better-auth/i18n@1.7.0-beta.5
@better-auth/expo@1.7.0-beta.5
@better-auth/electron@1.7.0-beta.5
@better-auth/drizzle-adapter@1.7.0-beta.5
@better-auth/core@1.7.0-beta.5
@better-auth/cimd@1.7.0-beta.5
@better-auth/api-key@1.7.0-beta.5
v1.7.0-beta.5
better-auth@1.6.16
auth@1.6.16
@better-auth/test-utils@1.6.16
@better-auth/telemetry@1.6.16
@better-auth/stripe@1.6.16
@better-auth/sso@1.6.16
@better-auth/scim@1.6.16
@better-auth/redis-storage@1.6.16
@better-auth/prisma-adapter@1.6.16
@better-auth/passkey@1.6.16
@better-auth/oauth-provider@1.6.16
@better-auth/mongo-adapter@1.6.16
@better-auth/memory-adapter@1.6.16
@better-auth/kysely-adapter@1.6.16
@better-auth/i18n@1.6.16
@better-auth/expo@1.6.16
@better-auth/electron@1.6.16
@better-auth/drizzle-adapter@1.6.16
@better-auth/core@1.6.16
@better-auth/api-key@1.6.16
v1.6.16
better-auth@1.6.15
auth@1.6.15
@better-auth/test-utils@1.6.15
@better-auth/telemetry@1.6.15
@better-auth/stripe@1.6.15
@better-auth/sso@1.6.15
@better-auth/scim@1.6.15
@better-auth/redis-storage@1.6.15
@better-auth/prisma-adapter@1.6.15
@better-auth/passkey@1.6.15
@better-auth/oauth-provider@1.6.15
@better-auth/mongo-adapter@1.6.15
@better-auth/memory-adapter@1.6.15
@better-auth/kysely-adapter@1.6.15
@better-auth/i18n@1.6.15
@better-auth/expo@1.6.15
@better-auth/electron@1.6.15
@better-auth/drizzle-adapter@1.6.15
@better-auth/core@1.6.15
@better-auth/api-key@1.6.15
v1.6.15
@better-auth/api-key@1.6.14
better-auth@1.6.14
auth@1.6.14
@better-auth/test-utils@1.6.14
@better-auth/telemetry@1.6.14
@better-auth/stripe@1.6.14
@better-auth/sso@1.6.14
@better-auth/scim@1.6.14
@better-auth/redis-storage@1.6.14
@better-auth/prisma-adapter@1.6.14
@better-auth/passkey@1.6.14
@better-auth/oauth-provider@1.6.14
@better-auth/mongo-adapter@1.6.14
@better-auth/memory-adapter@1.6.14
@better-auth/kysely-adapter@1.6.14
@better-auth/i18n@1.6.14
@better-auth/expo@1.6.14
@better-auth/electron@1.6.14
@better-auth/drizzle-adapter@1.6.14
@better-auth/core@1.6.14
v1.6.14
better-auth@1.7.0-beta.4
auth@1.7.0-beta.4
@better-auth/test-utils@1.7.0-beta.4
@better-auth/telemetry@1.7.0-beta.4
@better-auth/stripe@1.7.0-beta.4
@better-auth/sso@1.7.0-beta.4
@better-auth/scim@1.7.0-beta.4
@better-auth/redis-storage@1.7.0-beta.4
@better-auth/prisma-adapter@1.7.0-beta.4
@better-auth/passkey@1.7.0-beta.4
@better-auth/oauth-provider@1.7.0-beta.4
@better-auth/mongo-adapter@1.7.0-beta.4
@better-auth/memory-adapter@1.7.0-beta.4
@better-auth/kysely-adapter@1.7.0-beta.4
@better-auth/i18n@1.7.0-beta.4
@better-auth/expo@1.7.0-beta.4
@better-auth/electron@1.7.0-beta.4
@better-auth/drizzle-adapter@1.7.0-beta.4
@better-auth/core@1.7.0-beta.4
@better-auth/cimd@1.7.0-beta.4
@better-auth/api-key@1.7.0-beta.4
v1.7.0-beta.4
better-auth@1.6.13
auth@1.6.13
@better-auth/test-utils@1.6.13
@better-auth/telemetry@1.6.13
@better-auth/stripe@1.6.13
@better-auth/sso@1.6.13
@better-auth/scim@1.6.13
@better-auth/redis-storage@1.6.13
@better-auth/prisma-adapter@1.6.13
@better-auth/passkey@1.6.13
@better-auth/oauth-provider@1.6.13
@better-auth/mongo-adapter@1.6.13
@better-auth/memory-adapter@1.6.13
@better-auth/kysely-adapter@1.6.13
@better-auth/i18n@1.6.13
@better-auth/expo@1.6.13
@better-auth/electron@1.6.13
@better-auth/drizzle-adapter@1.6.13
@better-auth/core@1.6.13
@better-auth/api-key@1.6.13
v1.6.13
@better-auth/api-key@1.6.12
better-auth@1.6.12
auth@1.6.12
@better-auth/test-utils@1.6.12
@better-auth/telemetry@1.6.12
@better-auth/stripe@1.6.12
@better-auth/sso@1.6.12
@better-auth/scim@1.6.12
@better-auth/redis-storage@1.6.12
@better-auth/prisma-adapter@1.6.12
@better-auth/passkey@1.6.12
@better-auth/oauth-provider@1.6.12
@better-auth/mongo-adapter@1.6.12
@better-auth/memory-adapter@1.6.12
@better-auth/kysely-adapter@1.6.12
@better-auth/i18n@1.6.12
@better-auth/expo@1.6.12
@better-auth/electron@1.6.12
@better-auth/drizzle-adapter@1.6.12
@better-auth/core@1.6.12
v1.6.12
better-auth@1.6.11
auth@1.6.11
@better-auth/test-utils@1.6.11
@better-auth/telemetry@1.6.11
@better-auth/stripe@1.6.11
@better-auth/sso@1.6.11
@better-auth/scim@1.6.11
@better-auth/api-key@1.6.11
@better-auth/redis-storage@1.6.11
@better-auth/core@1.6.11
@better-auth/oauth-provider@1.6.11
@better-auth/mongo-adapter@1.6.11
@better-auth/memory-adapter@1.6.11
@better-auth/kysely-adapter@1.6.11
@better-auth/i18n@1.6.11
@better-auth/expo@1.6.11
@better-auth/electron@1.6.11
@better-auth/drizzle-adapter@1.6.11
@better-auth/prisma-adapter@1.6.11
@better-auth/passkey@1.6.11
v1.6.11
better-auth@1.7.0-beta.3
auth@1.7.0-beta.3
@better-auth/test-utils@1.7.0-beta.3
@better-auth/telemetry@1.7.0-beta.3
@better-auth/stripe@1.7.0-beta.3
@better-auth/sso@1.7.0-beta.3
@better-auth/scim@1.7.0-beta.3
@better-auth/redis-storage@1.7.0-beta.3
@better-auth/prisma-adapter@1.7.0-beta.3
@better-auth/passkey@1.7.0-beta.3
@better-auth/oauth-provider@1.7.0-beta.3
@better-auth/mongo-adapter@1.7.0-beta.3
@better-auth/memory-adapter@1.7.0-beta.3
@better-auth/kysely-adapter@1.7.0-beta.3
@better-auth/i18n@1.7.0-beta.3
@better-auth/expo@1.7.0-beta.3
@better-auth/electron@1.7.0-beta.3
@better-auth/drizzle-adapter@1.7.0-beta.3
@better-auth/core@1.7.0-beta.3
@better-auth/cimd@1.7.0-beta.3
@better-auth/api-key@1.7.0-beta.3
v1.7.0-beta.3
better-auth@1.6.10
auth@1.6.10
@better-auth/test-utils@1.6.10
@better-auth/telemetry@1.6.10
@better-auth/stripe@1.6.10
@better-auth/sso@1.6.10
@better-auth/scim@1.6.10
@better-auth/redis-storage@1.6.10
@better-auth/prisma-adapter@1.6.10
@better-auth/passkey@1.6.10
@better-auth/oauth-provider@1.6.10
@better-auth/mongo-adapter@1.6.10
@better-auth/memory-adapter@1.6.10
@better-auth/kysely-adapter@1.6.10
@better-auth/i18n@1.6.10
@better-auth/expo@1.6.10
@better-auth/electron@1.6.10
@better-auth/drizzle-adapter@1.6.10
@better-auth/core@1.6.10
@better-auth/api-key@1.6.10
v1.6.10
better-auth@1.6.9
auth@1.6.9
@better-auth/test-utils@1.6.9
@better-auth/telemetry@1.6.9
@better-auth/stripe@1.6.9
@better-auth/sso@1.6.9
@better-auth/scim@1.6.9
@better-auth/redis-storage@1.6.9
@better-auth/prisma-adapter@1.6.9
@better-auth/passkey@1.6.9
@better-auth/oauth-provider@1.6.9
@better-auth/mongo-adapter@1.6.9
@better-auth/memory-adapter@1.6.9
@better-auth/kysely-adapter@1.6.9
@better-auth/i18n@1.6.9
@better-auth/expo@1.6.9
@better-auth/electron@1.6.9
@better-auth/drizzle-adapter@1.6.9
@better-auth/core@1.6.9
@better-auth/api-key@1.6.9
v1.6.9
better-auth@1.6.8
auth@1.6.8
@better-auth/test-utils@1.6.8
@better-auth/telemetry@1.6.8
@better-auth/stripe@1.6.8
@better-auth/sso@1.6.8
@better-auth/scim@1.6.8
@better-auth/redis-storage@1.6.8
@better-auth/prisma-adapter@1.6.8
@better-auth/passkey@1.6.8
@better-auth/oauth-provider@1.6.8
@better-auth/mongo-adapter@1.6.8
@better-auth/memory-adapter@1.6.8
@better-auth/kysely-adapter@1.6.8
@better-auth/i18n@1.6.8
@better-auth/expo@1.6.8
@better-auth/electron@1.6.8
@better-auth/drizzle-adapter@1.6.8
@better-auth/core@1.6.8
@better-auth/api-key@1.6.8
v1.6.8
@better-auth/api-key@1.7.0-beta.2
better-auth@1.7.0-beta.2
auth@1.7.0-beta.2
@better-auth/test-utils@1.7.0-beta.2
@better-auth/telemetry@1.7.0-beta.2
@better-auth/stripe@1.7.0-beta.2
@better-auth/sso@1.7.0-beta.2
@better-auth/scim@1.7.0-beta.2
@better-auth/redis-storage@1.7.0-beta.2
@better-auth/prisma-adapter@1.7.0-beta.2
@better-auth/passkey@1.7.0-beta.2
@better-auth/oauth-provider@1.7.0-beta.2
@better-auth/mongo-adapter@1.7.0-beta.2
@better-auth/memory-adapter@1.7.0-beta.2
@better-auth/kysely-adapter@1.7.0-beta.2
@better-auth/i18n@1.7.0-beta.2
@better-auth/expo@1.7.0-beta.2
@better-auth/electron@1.7.0-beta.2
@better-auth/drizzle-adapter@1.7.0-beta.2
@better-auth/core@1.7.0-beta.2
@better-auth/cimd@1.7.0-beta.2
v1.7.0-beta.2
better-auth@1.6.7
auth@1.6.7
@better-auth/test-utils@1.6.7
@better-auth/telemetry@1.6.7
@better-auth/stripe@1.6.7
@better-auth/sso@1.6.7
@better-auth/scim@1.6.7
@better-auth/redis-storage@1.6.7
@better-auth/prisma-adapter@1.6.7
@better-auth/passkey@1.6.7
@better-auth/oauth-provider@1.6.7
@better-auth/mongo-adapter@1.6.7
@better-auth/memory-adapter@1.6.7
@better-auth/kysely-adapter@1.6.7
@better-auth/i18n@1.6.7
@better-auth/expo@1.6.7
@better-auth/electron@1.6.7
@better-auth/drizzle-adapter@1.6.7
@better-auth/core@1.6.7
@better-auth/api-key@1.6.7
v1.6.7
better-auth@1.6.6
auth@1.6.6
@better-auth/test-utils@1.6.6
@better-auth/telemetry@1.6.6
@better-auth/stripe@1.6.6
@better-auth/sso@1.6.6
@better-auth/scim@1.6.6
@better-auth/redis-storage@1.6.6
@better-auth/prisma-adapter@1.6.6
@better-auth/passkey@1.6.6
@better-auth/oauth-provider@1.6.6
@better-auth/mongo-adapter@1.6.6
@better-auth/memory-adapter@1.6.6
@better-auth/kysely-adapter@1.6.6
@better-auth/i18n@1.6.6
@better-auth/expo@1.6.6
@better-auth/electron@1.6.6
@better-auth/drizzle-adapter@1.6.6
@better-auth/core@1.6.6
@better-auth/api-key@1.6.6
v1.6.6
better-auth@1.6.5
auth@1.6.5
@better-auth/test-utils@1.6.5
@better-auth/telemetry@1.6.5
@better-auth/stripe@1.6.5
@better-auth/sso@1.6.5
@better-auth/scim@1.6.5
@better-auth/redis-storage@1.6.5
@better-auth/prisma-adapter@1.6.5
@better-auth/passkey@1.6.5
@better-auth/oauth-provider@1.6.5
@better-auth/mongo-adapter@1.6.5
@better-auth/memory-adapter@1.6.5
@better-auth/kysely-adapter@1.6.5
@better-auth/i18n@1.6.5
@better-auth/expo@1.6.5
@better-auth/electron@1.6.5
@better-auth/drizzle-adapter@1.6.5
@better-auth/core@1.6.5
@better-auth/api-key@1.6.5
v1.6.5
@better-auth/api-key@1.6.4
better-auth@1.6.4
auth@1.6.4
@better-auth/test-utils@1.6.4
@better-auth/telemetry@1.6.4
@better-auth/stripe@1.6.4
@better-auth/sso@1.6.4
@better-auth/scim@1.6.4
@better-auth/redis-storage@1.6.4
@better-auth/prisma-adapter@1.6.4
@better-auth/passkey@1.6.4
@better-auth/oauth-provider@1.6.4
@better-auth/mongo-adapter@1.6.4
@better-auth/memory-adapter@1.6.4
@better-auth/kysely-adapter@1.6.4
@better-auth/i18n@1.6.4
@better-auth/expo@1.6.4
@better-auth/electron@1.6.4
@better-auth/drizzle-adapter@1.6.4
@better-auth/core@1.6.4
v1.6.4
@better-auth/cimd@1.7.0-beta.1
v1.7.0-beta.1
@better-auth/api-key@1.6.3
better-auth@1.6.3
auth@1.6.3
@better-auth/test-utils@1.6.3
@better-auth/telemetry@1.6.3
@better-auth/stripe@1.6.3
@better-auth/sso@1.6.3
@better-auth/scim@1.6.3
@better-auth/redis-storage@1.6.3
@better-auth/prisma-adapter@1.6.3
@better-auth/passkey@1.6.3
@better-auth/oauth-provider@1.6.3
@better-auth/mongo-adapter@1.6.3
@better-auth/memory-adapter@1.6.3
@better-auth/kysely-adapter@1.6.3
@better-auth/i18n@1.6.3
@better-auth/expo@1.6.3
@better-auth/electron@1.6.3
@better-auth/drizzle-adapter@1.6.3
@better-auth/core@1.6.3
v1.6.3
@better-auth/api-key@1.7.0-beta.0
better-auth@1.7.0-beta.0
auth@1.7.0-beta.0
@better-auth/test-utils@1.7.0-beta.0
@better-auth/telemetry@1.7.0-beta.0
@better-auth/stripe@1.7.0-beta.0
@better-auth/sso@1.7.0-beta.0
@better-auth/scim@1.7.0-beta.0
@better-auth/redis-storage@1.7.0-beta.0
@better-auth/prisma-adapter@1.7.0-beta.0
@better-auth/passkey@1.7.0-beta.0
@better-auth/oauth-provider@1.7.0-beta.0
@better-auth/mongo-adapter@1.7.0-beta.0
@better-auth/memory-adapter@1.7.0-beta.0
@better-auth/kysely-adapter@1.7.0-beta.0
@better-auth/i18n@1.7.0-beta.0
@better-auth/expo@1.7.0-beta.0
@better-auth/electron@1.7.0-beta.0
@better-auth/drizzle-adapter@1.7.0-beta.0
@better-auth/core@1.7.0-beta.0
v1.7.0-beta.0
better-auth@1.6.2
auth@1.6.2
@better-auth/test-utils@1.6.2
@better-auth/telemetry@1.6.2
@better-auth/stripe@1.6.2
@better-auth/sso@1.6.2
@better-auth/scim@1.6.2
@better-auth/redis-storage@1.6.2
@better-auth/prisma-adapter@1.6.2
@better-auth/passkey@1.6.2
@better-auth/oauth-provider@1.6.2
@better-auth/mongo-adapter@1.6.2
@better-auth/memory-adapter@1.6.2
@better-auth/kysely-adapter@1.6.2
@better-auth/i18n@1.6.2
@better-auth/expo@1.6.2
@better-auth/electron@1.6.2
@better-auth/drizzle-adapter@1.6.2
@better-auth/core@1.6.2
@better-auth/api-key@1.6.2
v1.6.2
better-auth@1.6.1
auth@1.6.1
@better-auth/test-utils@1.6.1
@better-auth/telemetry@1.6.1
@better-auth/stripe@1.6.1
@better-auth/sso@1.6.1
@better-auth/scim@1.6.1
@better-auth/redis-storage@1.6.1
@better-auth/prisma-adapter@1.6.1
@better-auth/passkey@1.6.1
@better-auth/oauth-provider@1.6.1
@better-auth/mongo-adapter@1.6.1
@better-auth/memory-adapter@1.6.1
@better-auth/kysely-adapter@1.6.1
@better-auth/i18n@1.6.1
@better-auth/expo@1.6.1
@better-auth/electron@1.6.1
@better-auth/drizzle-adapter@1.6.1
@better-auth/core@1.6.1
@better-auth/api-key@1.6.1
v1.6.1
better-auth@1.6.0
auth@1.6.0
@better-auth/test-utils@1.6.0
@better-auth/telemetry@1.6.0
@better-auth/stripe@1.6.0
@better-auth/sso@1.6.0
@better-auth/scim@1.6.0
@better-auth/redis-storage@1.6.0
@better-auth/prisma-adapter@1.6.0
@better-auth/passkey@1.6.0
@better-auth/oauth-provider@1.6.0
@better-auth/mongo-adapter@1.6.0
@better-auth/memory-adapter@1.6.0
@better-auth/kysely-adapter@1.6.0
@better-auth/i18n@1.6.0
@better-auth/expo@1.6.0
@better-auth/electron@1.6.0
@better-auth/drizzle-adapter@1.6.0
@better-auth/core@1.6.0
@better-auth/api-key@1.6.0
v1.6.0
v1.5.7-beta.1
v1.5.1-beta.4
v1.5.6
v1.4.22
v1.5.5
v1.5.4
v1.5.3
v1.5.2
v1.5.1-beta.3
v1.5.1-beta.2
v1.5.1
v1.4.21
v1.5.1-beta.1
v1.5.0
v1.4.20
v1.5.0-beta.20
v1.5.0-beta.19
v1.5.0-beta.18
v1.4.19
v1.5.0-beta.17
v1.5.0-beta.16
v1.5.0-beta.15
v1.5.0-beta.14
v1.5.0-beta.13
v1.5.0-beta.12
v1.5.0-beta.11
v1.4.18
v1.5.0-beta.10
v1.5.0-beta.9
v1.4.17
v1.4.16
v1.4.15
v1.5.0-beta.8
v1.4.14
v1.4.13
v1.5.0-beta.7
v1.4.12
v1.4.12-beta.2
v1.5.0-beta.6
v1.4.12-beta.1
v1.5.0-beta.5
v1.4.11
v1.5.0-beta.4
v1.4.11-beta.2
v1.5.0-beta.3
v1.4.11-beta.1
v1.4.10
v1.5.0-beta.2
v1.4.10-beta.1
v1.4.9-beta.1
v1.5.0-beta.1
v1.4.9
v1.4.8
v1.4.8-beta.7
v1.4.8-beta.6
v1.4.8-beta.5
v1.4.8-beta.4
v1.4.8-beta.3
v1.4.8-beta.2
v1.4.8-beta.1
v1.4.7
v1.4.7-beta.4
v1.4.7-beta.3
v1.4.7-beta.2
v1.4.6-beta.5
v1.4.7-beta.1
v1.4.6
v1.4.6-beta.4
v1.4.6-beta.3
v1.4.5
v1.4.6-beta.2
v1.4.6-beta.1
v1.4.5-beta.2
v1.4.5-beta.1
v1.4.4-beta.3
v1.4.4
v1.4.4-beta.2
v1.4.4-beta.1
v1.4.3
v1.4.2
v1.4.2-beta.5
v1.4.2-beta.4
v1.4.2-beta.3
v1.4.2-beta.2
v1.4.2-beta.1
v1.4.1
v1.4.1-beta.1
v1.4.0
v1.4.0-beta.28
v1.4.0-beta.27
v1.4.0-beta.26
v1.4.0-beta.25
v1.4.0-beta.24
v1.4.0-beta.23
v1.4.0-beta.22
v1.4.0-beta.21
v1.4.0-beta.20
v1.4.0-beta.19
v1.4.0-beta.18
v1.4.0-beta.17
v1.4.0-beta.16
v1.4.0-beta.15
v1.3.34
v1.3.33
v1.4.0-beta.14
v1.3.32
v1.3.31
v1.3.30
v1.4.0-beta.13
v1.3.29
v1.4.0-beta.12
v1.3.28
v1.4.0-beta.11
v1.4.0-beta.10
v1.4.0-beta.9
v1.4.0-beta.8
v1.3.27
v1.4.0-beta.7
v1.3.26
v1.3.25
v1.3.24
v1.4.0-beta.6
v1.3.23
v1.3.22
v1.3.21
v1.3.20
v1.3.19
v1.4.0-beta.5
v1.3.18
v1.4.0-beta.4
v1.3.17
v1.4.0-beta.3
v1.3.16
v1.3.15
v1.3.14
v1.4.0-beta.2
v1.3.13
v1.4.0-beta.1
v1.3.12
v1.3.11-beta.2
v1.3.11
v1.3.11-beta.1
v1.3.10
v1.3.10-beta.7
v1.3.10-beta.6
v1.3.10-beta.5
v1.3.10-beta.4
v1.3.10-beta.3
v1.3.10-beta.2
v1.3.10-beta.1
v1.3.9
v1.3.9-beta.4
v1.3.9-beta.3
v1.3.9-beta.2
v1.3.9-beta.1
v1.3.8
v1.3.8-beta.11
v1.3.8-beta.10
v1.3.8-beta.9
v1.3.8-beta.8
v1.3.8-beta.7
v1.3.8-beta.6
v1.3.8-beta.5
v1.3.8-beta.4
v1.3.8-beta.3
v1.3.8-beta.2
v1.3.8-beta.1
v1.3.7
v1.3.7-beta.4
v1.3.7-beta.3
v1.3.7-beta.2
v1.3.7-beta.1
v1.3.6
v1.3.6-beta.2
v1.3.6-beta.1
v1.3.5
v1.3.5-beta.7
v1.3.5-beta.6
v1.3.5-beta.5
v1.3.5-beta.4
v1.3.5-beta.3
v1.3.5-beta.2
v1.3.5-beta.1
better-auth@1.3.4
@better-auth/stripe@1.3.4
@better-auth/sso@1.3.4
@better-auth/expo@1.3.4
@better-auth/cli@1.3.4
v1.3.4-beta.3
v1.3.4-beta.2
v1.3.4-beta.1
v1.3.3
v1.3.2
v1.3.1
v1.3.1-beta.1
v1.3.0
v1.3.0-beta.11
v1.3.0-beta.10
v1.3.0-beta.9
v1.3.0-beta.8
v1.3.0-beta.7
v1.3.0-beta.6
v1.3.0-beta.5
v1.3.0-beta.4
v1.2.12
v1.3.0-beta.3
v1.3.0-beta.2
v1.3.0-beta.1
v1.2.11
v1.2.10
v1.2.10-pkce-fix.3
v1.2.10-beta.1
v1.2.9
v1.2.9-beta.10
v1.2.9-beta.9
feat/2867-oidcprovider-trusted
v1.2.9-beta.8
v1.2.9-beta.7
v1.2.9-beta.6
v1.2.9-beta.5
v1.2.9-beta.4
v1.2.9-beta.3
v1.2.9-beta.2
v1.2.9-beta.1
v1.2.8
v1.2.8-beta.8
v1.2.8-beta.7
v1.2.8-beta.6
v1.2.8-beta.5
v1.2.8-beta.4
v1.2.8-beta.3
v1.2.8-beta.2
v1.2.8-beta.1
v1.2.7
v1.2.7-beta.1
v1.2.6
v1.2.6-beta.13
v1.2.6-beta.12
v1.2.6-beta.11
v1.2.6-beta.10
v1.2.6-beta.9
v1.2.6-beta.8
v1.2.6-beta.7
v1.2.6-beta.6
v1.2.6-beta.5
v1.2.6-beta.4
v1.2.6-beta.3
v1.2.6-beta.2
v1.2.6-beta.1
v1.2.5
v1.2.5-beta.10
v1.2.5-beta.9
v1.2.5-beta.8
v1.2.5-beta.7
v1.2.5-beta.6
v1.2.5-beta.5
v1.2.5-beta.4
v1.2.5-beta.3
v1.2.5-beta.2
v1.2.5-beta.1
v1.2.4
v1.2.4-beta.12
v1.2.4-beta.11
v1.2.4-beta.10
v1.2.4-beta.9
v1.2.4-beta.8
v1.2.4-beta.7
v1.2.4-beta.6
v1.2.4-beta.5
v1.2.4-beta.4
v1.2.4-beta.3
v1.2.4-beta.2
v1.2.4-beta.1
v1.2.3
v1.2.3-beta.3
v1.2.3-beta.2
v1.2.3-beta.1
v1.2.2
v1.2.2-beta.6
v1.2.2-beta.5
v1.2.2-beta.4
v1.2.2-beta.3
v1.2.2-beta.2
v1.2.2-beta.1
v1.2.1
v1.2.1-beta.8
v1.2.1-beta.7
v1.2.1-beta.6
v1.2.1-beta.5
v1.2.1-beta.4
v1.2.1-beta.3
v1.2.1-beta.2
v1.2.1-beta.1
v1.2.0
v1.2.0-beta.19
v1.2.0-beta.18
v1.2.0-beta.17
v1.1.22-beta.2
v1.1.22-beta.1
v1.2.0-beta.16
v1.1.21
v1.1.21-beta.1
v1.2.0-beta.15
v1.1.20
v1.1.20-beta.5
v1.1.20-beta.4
v1.2.0-beta.14
v1.2.0-beta.13
v1.1.20-beta.3
v1.1.20-beta.2
v1.2.0-beta.12
v1.1.20-beta.1
v1.2.0-beta.11
v1.1.19
v1.1.19-beta.3
v1.2.0-beta.10
v1.2.0-beta.9
v1.2.0-beta.8
v1.2.0-beta.7
v1.1.19-beta.2
v1.1.19-beta.1
v1.1.18
v1.2.0-beta.6
v1.2.0-beta.5
v1.1.18-beta.3
v1.1.18-beta.2
v1.1.18-beta.1
v1.2.0-beta.4
v1.2.0-beta.3
v1.2.0-beta.2
v1.1.17
v1.2.0-beta.1
v1.1.17-beta.5
v1.1.17-beta.4
v1.1.17-beta.3
v1.1.17-beta.2
v1.1.17-beta.1
v1.1.16
v1.1.16-beta.10
v1.1.16-beta.9
v1.1.16-beta.8
v1.1.16-beta.7
v1.1.16-beta.6
v1.1.16-beta.5
v1.1.16-beta.4
v1.1.16-beta.3
v1.1.16-beta.2
v1.1.16-beta.1
v1.1.15
v1.1.15-beta.7
v1.1.15-beta.6
v1.1.15-beta.5
v1.1.15-beta.4
v1.1.15-beta.3
v1.1.15-beta.2
v1.1.15-beta.1
v1.1.14
v1.1.14-beta.6
v1.1.14-beta.5
v1.1.14-beta.4
v1.1.14-beta.3
v1.1.14-beta.2
v1.1.14-beta.1
v1.1.13
v1.1.13-beta.3
v1.1.13-beta.2
v1.1.13-beta.1
v1.1.12
v1.1.12-beta.4
v1.1.12-beta.3
v1.1.12-beta.2
v1.1.12-beta.1
v1.1.11
v1.1.11-beta.1
v1.1.10
v1.1.10-beta.2
v1.1.10-beta.1
v1.1.9
v1.1.9-beta.1
v1.1.8
v1.1.8-beta.3
v1.1.8-beta.2
v1.1.8-beta.1
v1.1.7
v1.1.7-beta.5
v1.1.7-beta.4
v1.1.7-beta.3
v1.1.7-beta.2
v1.1.7-beta.1
v1.1.6
v1.1.5
v1.1.4
v1.1.4-beta.2
v1.1.4-beta.1
v1.1.3
v1.1.3-beta.9
v1.1.3-beta.8
v1.1.3-beta.7
v1.1.3-beta.6
v1.1.3-beta.4
v1.1.3-beta.2
v1.1.3-beta.1
v1.1.2
v1.1.2-beta.4
v1.1.2-beta.3
v1.1.2-beta.2
v1.1.2-beta.1
v1.1.1
v1.1.0
v1.0.23-beta.6
v1.0.23-beta.5
v1.0.23-beta.4
v1.0.23-beta.3
v1.0.23-beta.2
v1.0.23-beta.1
v1.0.22
v1.0.22-beta.4
v1.0.22-beta.3
v1.0.22-beta.2
v1.0.22-beta.1
v1.0.21
v1.0.20
v1.0.19
v1.0.18
v1.0.17
v1.0.16
v1.0.16-beta.2
v1.0.16-beta.1
v1.0.15
v1.0.15-beta.1
v1.0.14
v1.0.13
v1.0.12
v1.0.12-beta.3
v1.0.12-beta.2
v1.0.12-beta.1
v1.0.11
v1.0.11-beta.8
v1.0.11-beta.7
v1.0.11-beta.6
v1.0.11-beta.5
v1.0.11-beta.4
v1.0.11-beta.3
v1.0.11-beta.2
v1.0.11-beta.1
v1.0.10
v1.0.10-beta.3
v1.0.10-beta.2
v1.0.10-beta.1
v1.0.9
v1.0.9-beta.7
v1.0.9-beta.6
v1.0.9-beta.5
v1.0.9-beta.4
v1.0.9-beta.3
v1.0.9-beta.2
v1.0.9-beta.1
v1.0.8
v1.0.8-beta.4
v1.0.8-beta.3
v1.0.8-beta.2
v1.0.8-beta.1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v1.0.0-canary.14
v1.0.0-canary.13
v1.0.0-canary.12
v1.0.0-canary.11
v1.0.0-canary.10
v1.0.0-canary.9
v1.0.0-canary.8
v1.0.0-canary.7
v1.0.0-canary.6
v0.8.9-beta.2
v0.8.9-beta.1
v1.0.0-canary.5
v1.0.0-canary.4
v1.0.0-canary.3
v1.0.0-canary.2
v1.0.0-canary.1
v0.8.8
v0.8.8-beta.2
v0.8.8-beta.1
v0.9.0-canary.1
v0.8.7
v0.8.7-canary.2
v0.8.7-canary.1
v0.8.7-beta.5
v0.8.7-beta.4
v0.8.7-beta.3
v0.8.7-beta.2
v0.8.7-beta.1
v0.8.6
v0.8.6-beta.6
v0.8.6-beta.5
v0.8.6-beta.4
v0.8.6-beta.3
v0.8.6-beta.2
v0.8.6-beta.1
v0.8.5
v0.8.5-beta.3
v0.8.5-beta.2
v0.8.5-beta.1
v0.8.4
v0.8.4-beta.7
v0.8.4-beta.6
v0.8.4-beta.5
v0.8.4-beta.4
v0.8.4-beta.2
v0.8.4-beta.1
v0.8.3
v0.8.3-beta.7
v0.8.3-beta.6
v0.8.3-beta.5
v0.8.3-beta.4
v0.8.3-beta.3
v0.8.3-beta.2
v0.8.3-beta.1
v0.8.2
v0.8.2-beta.3
v0.8.2-beta.2
v0.8.2-beta.1
v0.8.1
v0.8.1-beta.5
v0.8.1-beta.4
v0.8.1-beta.3
v0.8.1-beta.2
v0.8.1-beta.1
v0.8.0
v0.7.6-beta.4
v0.7.6-beta.3
v0.7.6-beta.2
v0.7.6-beta.1
v0.7.5
v0.7.5-beta.9
v0.7.5-beta.8
v0.7.5-beta.7
v0.7.5-beta.6
v0.7.5-beta.5
v0.7.5-beta.4
v0.7.5-beta.3
v0.7.5-beta.2
v0.7.5-beta.1
v0.7.4
v0.7.4-beta.1
v0.7.3
v0.7.3-beta.11
v0.7.3-beta.10
v0.7.3-beta.9
v0.7.3-beta.8
v0.7.3-beta.7
v0.7.3-beta.6
v0.7.3-beta.5
v0.7.3-beta.4
v0.7.3-beta.3
v0.7.3-beta.2
v0.7.3-beta.1
v0.7.2
v0.7.2-beta.5
v0.7.2-beta.4
v0.7.2-beta.3
v0.7.2-beta.2
v0.7.2-beta.1
v0.7.1
v0.7.1-beta.6
v0.7.1-beta.5
v0.7.1-beta.4
v0.7.1-beta.3
v0.7.1-beta.2
v0.7.1-beta.1
v0.7.0
v0.7.0-beta.1
v0.6.3-beta.5
v0.6.3-beta.4
v0.6.3-beta.3
v0.6.3-beta.2
v0.6.3-beta.1
v0.6.2
v0.6.2-beta.8
v0.6.2-beta.7
v0.6.2-beta.6
v0.6.2-beta.5
v0.6.2-beta.4
v0.6.2-beta.3
v0.6.2-beta.2
v0.6.2-beta.1
v0.6.1
v0.6.1-beta.9
v0.6.1-beta.8
v0.6.1-beta.7
v0.6.1-beta.6
v0.6.1-beta.5
v0.6.1-beta.4
v0.6.1-beta.3
v0.6.1-beta.2
v0.6.1-beta.1
v0.6.0
v0.6.0-beta.1
v0.5.4-beta.9
v0.5.4-beta.8
v0.5.4-beta.7
v0.5.4-beta.6
v0.5.4-beta.5
v0.5.4-beta.4
v0.5.4-beta.3
v0.5.4-beta.2
v0.5.4-beta.1
v0.5.3
v0.5.3-beta.17
v0.5.3-beta.16
v0.5.3-beta.15
v0.5.3-beta.14
v0.5.3-beta.13
v0.5.3-beta.12
v0.5.3-beta.11
v0.5.3-beta.10
v0.5.3-beta.9
v0.5.3-beta.8
v0.5.3-beta.7
v0.5.3-beta.6
v0.5.3-beta.5
v0.5.3-beta.4
v0.5.3-beta.3
v0.5.3-beta.2
v0.5.3-beta.1
v0.5.2
v0.5.2-beta.21
v0.5.2-beta.20
v0.5.2-beta.19
v0.5.2-beta.18
v0.5.2-beta.17
v0.5.2-beta.16
v0.5.2-beta.15
v0.5.2-beta.14
v0.5.2-beta.13
v0.5.2-beta.12
v0.5.2-beta.11
v0.5.2-beta.10
v0.5.2-beta.9
v0.5.2-beta.8
v0.5.2-beta.7
v0.5.2-beta.6
v0.5.2-beta.5
v0.5.2-beta.4
v0.5.2-beta.3
v0.5.2-beta.2
v0.5.2-beta.1
v0.5.1
v0.5.1-beta.7
v0.5.1-beta.6
v0.5.1-beta.5
v0.5.1-beta.4
v0.5.1-beta.3
v0.5.1-beta.2
v0.5.1-beta.1
v0.5.0
v0.4.14-beta.2
v0.4.14-beta.1
v0.4.13
v0.4.12
v0.4.12-beta.7
v0.4.12-beta.6
v0.4.12-beta.5
v0.4.12-beta.4
v0.4.12-beta.3
v0.4.12-beta.2
v0.4.12-beta.1
v0.4.11
v0.4.11-beta.3
v0.4.11-beta.2
v0.4.11-beta.1
v0.4.10-beta.10
v0.4.10-beta.9
v0.4.10
v0.4.10-beta.8
v0.4.10-beta.7
v0.4.10-beta.6
v0.4.10-beta.5
v0.4.10-beta.4
v0.4.10-beta.3
v0.4.10-beta.2
v0.4.10-beta.1
v0.4.9
v0.4.9-beta.14
v0.4.9-beta.13
v0.4.9-beta.12
v0.4.9-beta.11
v0.4.9-beta.10
v0.4.9-beta.9
v0.4.9-beta.8
v0.4.9-beta.7
v0.4.9-beta.6
v0.4.9-beta.5
v0.4.9-beta.4
v0.4.9-beta.3
v0.4.9-beta.2
v0.4.9-beta.1
v0.4.8
v0.4.7
v0.4.7-beta.2
v0.4.7-beta.1
v0.4.6
v0.4.5
v0.4.4
v0.4.4-beta.1
v0.4.3
v0.4.3-beta.1
v0.4.2
v0.4.2-beta.1
v0.4.1
v0.4.0
v0.3.6
v0.3.5
v0.3.5-beta.8
v0.3.5-beta.7
v0.3.5-beta.6
v0.3.5-beta.5
v0.3.5-beta.4
v0.3.5-beta.3
v0.3.5-beta.2
v0.3.5-beta.1
v0.3.4
v0.3.4-beta.6
v0.3.4-beta.5
v0.3.4-beta.4
v0.3.4-beta.3
v0.3.4-beta.2
v0.3.4-beta.1
v0.3.3
v0.3.3-beta.12
v0.3.3-beta.11
v0.3.3-beta.10
v0.3.3-beta.9
v0.3.3-beta.8
v0.3.3-beta.7
v0.3.3-beta.6
v0.3.3-beta.5
v0.3.3-beta.4
v0.3.3-beta.3
v0.3.3-beta.2
v0.3.3-beta.1
v0.3.2
v0.3.1
v0.3.0
v0.2.11
v0.2.10
v0.2.9
v0.2.9-beta.10
v0.2.9-beta.9
v0.2.9-beta.8
v0.2.9-beta.7
v0.2.9-beta.6
v0.2.9-beta.5
v0.2.9-beta.4
v0.2.9-beta.3
v0.2.9-beta.2
v0.2.9-beta.1
v0.2.8
v0.2.8-beta.13
v0.2.8-beta.12
v0.2.8-beta.11
v0.2.8-beta.10
v0.2.8-beta.9
v0.2.8-beta.8
v0.2.8-beta.7
v0.2.8-beta.6
v0.2.8-beta.5
v0.2.8-beta.4
v0.2.8-beta.3
v0.2.8-beta.2
v0.2.8-beta.1
v0.2.7
v0.2.6
v0.2.6-beta.10
v0.2.6-beta.9
v0.2.6-beta.8
v0.2.6-beta.7
v0.2.6-beta.6
v0.2.6-beta.5
v0.2.6-beta.4
v0.2.6-beta.3
v0.2.6-beta.2
v0.2.6-beta.1
v0.2.5
v0.2.5-beta.5
v0.2.5-beta.4
v0.2.5-beta.3
v0.2.5-beta.2
v0.2.5-beta.1
v0.2.4
v0.2.3
v0.2.3-beta.14
v0.2.3-beta.13
v0.2.3-beta.12
v0.2.3-beta.11
v0.2.3-beta.10
v0.2.3-beta.9
v0.2.3-beta.8
v0.2.3-beta.7
v0.2.3-beta.6
v0.2.3-beta.5
v0.2.3-beta.4
v0.2.3-beta.3
v0.2.3-beta.2
v0.2.3-beta.1
v0.2.2
v0.2.1
v0.2.1-beta.1
v0.2.0
v0.1.1-beta.6
v0.1.1-beta.5
v0.1.1-beta.4
v0.1.1-beta.3
v0.1.1-beta.2
v0.1.1-beta.1
v0.1.0
v0.0.10-beta.27
v0.0.10-beta.26
v0.0.10-beta.25
v0.0.10-beta.24
v0.0.10-beta.23
v0.0.10-beta.22
v0.0.10-beta.21
v0.0.10-beta.20
v0.0.10-beta.19
v0.0.10-beta.18
v0.0.10-beta.17
v0.0.10-beta.16
v0.0.10-beta.15
v0.0.10-beta.14
v0.0.10-beta.13
v0.0.10-beta.12
v0.0.10-beta.11
v0.0.10-beta.10
v0.0.10-beta.9
v0.0.10-beta.8
v0.0.10-beta.7
v0.0.10-beta.6
v0.0.10-beta.5
v0.0.10-beta.4
v0.0.10-beta.3
v0.0.10-beta.2
v0.0.10-beta.1
v0.0.9
v0.0.9-beta.38
v0.0.9-beta.37
v0.0.9-beta.36
v0.0.9-beta.35
v0.0.9-beta.34
v0.0.9-beta.33
v0.0.9-beta.32
v0.0.9-beta.31
v0.0.9-beta.30
v0.0.9-beta.29
v0.0.9-beta.28
v0.0.9-beta.27
v0.0.9-beta.26
v0.0.9-beta.25
v0.0.9-beta.24
v0.0.9-beta.23
v0.0.9-beta.22
v0.0.9-beta.21
v0.0.9-beta.20
v0.0.9-beta.19
v0.0.9-beta.18
v0.0.9-beta.17
v0.0.9-beta.16
v0.0.9-beta.15
v0.0.9-beta.14
v0.0.9-beta.13
v0.0.9-beta.12
v0.0.9-beta.11
v0.0.9-beta.10
v0.0.9-beta.9
v0.0.9-beta.8
v0.0.9-beta.7
v0.0.9-beta.6
v0.0.9-beta.5
v0.0.9-beta.4
v0.0.9-beta.3
v0.0.9-beta.2
v0.0.9-beta.1
v0.0.8
v0.0.8-beta.29
v0.0.8-beta.28
v0.0.8-beta.27
v0.0.8-beta.26
v0.0.8-beta.25
v0.0.8-beta.24
v0.0.8-beta.23
v0.0.8-beta.22
v0.0.8-beta.21
v0.0.8-beta.20
v0.0.8-beta.19
v0.0.8-beta.18
v0.0.8-beta.17
v0.0.8-beta.16
v0.0.8-beta.15
v0.0.8-beta.14
v0.0.8-beta.13
v0.0.8-beta.12
v0.0.8-beta.11
v0.0.8-beta.10
v0.0.8-beta.9
v0.0.8-beta.8
v0.0.8-beta.7
v0.0.8-beta.6
v0.0.8-beta.5
v0.0.8-beta.4
v0.0.8-beta.3
v0.0.8-beta.2
v0.0.8-beta.1
v0.0.7
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.2-beta.8
v0.0.2-beta.7
v0.0.2-beta.6
v0.0.2-beta.5
v0.0.2-beta.4
v0.0.2-beta.3
v0.0.2-beta.2
v0.0.2-beta.1
Labels
Clear labels
adapter
astro
awaiting external contributor
blocked
breaking
breaking change
bug
c-devops
core
credentials
database
dependencies
devops
devtools
docs
documentation
duplicate
elysia
enhancement
enterprise
expo
express
fastify
good first issue
help wanted
hono
identity
infra
integration
invalid
javascript
locked
maintenance
need-more-information
needs: info
needs: repro
nextjs
nuxt
oauth
organization
P0
payments
perf
platform
plugin
pull-request
question
ready
regression
remix
security
social-provider
solid
stale
svelte
tanstack-start
tracking
version-bump
vue
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/better-auth#10470
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @Jackman3005 on GitHub (Nov 25, 2025).
Original GitHub issue: https://github.com/better-auth/better-auth/issues/6284
Is this suited for github?
To Reproduce
The regression was introduced in commit
4817a6e9a4(PR #2107 "fix(openapi): add operationId to routes") on Nov 15, 2025.The diff shows
sessionMiddlewarewas (likely unintentionally) added alongsideoperationId:Current vs. Expected behavior
Current
The /oauth2/userinfo endpoint requires cookie-based session authentication via sessionMiddleware, causing OAuth2/OIDC clients using Bearer tokens to fail.
Expected
Per OpenID Connect Core spec, the userinfo endpoint MUST accept
Authorization: Bearer <access_token>header authentication.Fix
Remove
use: [sessionMiddleware]from line 934 in packages/better-auth/src/plugins/oidc-provider/index.tsWhat version of Better Auth are you using?
1.4.1
System info
JSON Dump
{ "system": { "platform": "darwin", "arch": "arm64", "version": "Darwin Kernel Version 25.1.0: Mon Oct 20 19:32:41 PDT 2025; root:xnu-12377.41.6~2/RELEASE_ARM64_T6000", "release": "25.1.0", "cpuCount": 10, "cpuModel": "Apple M1 Pro", "totalMemory": "16.00 GB", "freeMemory": "0.12 GB" }, "node": { "version": "v22.17.1", "env": "development" }, "packageManager": { "name": "npm", "version": "10.9.2" }, "frameworks": [ { "name": "fastify", "version": "^5.6.1" } ], "databases": [ { "name": "@prisma/client", "version": "^6.16.2" } ], "betterAuth": { "version": "1.4.1", "config": { "basePath": "/v1/auth", "baseURL": "http://localhost:5002", "appName": "MyApp", "trustedOrigins": [ "http://localhost:5001", "https://my-app.com", "https://www.my-app.com" ], "socialProviders": { "discord": { "clientId": "[REDACTED]", "clientSecret": "[REDACTED]", "redirectURI": "http://localhost:5001/v1/auth/callback/discord" } }, "user": { "modelName": "User", "additionalFields": { "avatarUploadId": { "type": "string", "input": true, "required": false, "returned": false }, "referrerUsername": { "type": "string", "input": true, "required": false, "returned": false }, "profileComplete": { "type": "boolean", "input": true, "required": false, "returned": true } } }, "session": { "expiresIn": 31536000, "updateAge": 86400, "freshAge": 900, "cookieCache": { "enabled": true, "maxAge": 300 } }, "hooks": {}, "emailAndPassword": { "enabled": true, "requireEmailVerification": true, "password": {} }, "emailVerification": { "sendOnSignUp": true, "sendOnSignIn": false, "autoSignInAfterVerification": false, "expiresIn": 3600 }, "advanced": { "database": { "generateId": "serial" }, "cookiePrefix": "my-app" }, "databaseHooks": { "user": { "create": {}, "update": {} }, "session": { "create": {} } }, "plugins": [ { "name": "username", "config": { "id": "username", "endpoints": {}, "schema": { "user": { "fields": { "username": { "type": "string", "required": false, "sortable": true, "unique": true, "returned": true, "transform": {} }, "displayUsername": { "type": "string", "required": false, "transform": {} } } } }, "hooks": { "before": [ {}, {} ] }, "$ERROR_CODES": { "INVALID_USERNAME_OR_PASSWORD": "[REDACTED]", "EMAIL_NOT_VERIFIED": "Email not verified", "UNEXPECTED_ERROR": "Unexpected error", "USERNAME_IS_ALREADY_TAKEN": "Username is already taken. Please try another.", "USERNAME_TOO_SHORT": "Username is too short", "USERNAME_TOO_LONG": "Username is too long", "INVALID_USERNAME": "Username is invalid", "INVALID_DISPLAY_USERNAME": "Display username is invalid" } } }, { "name": "mcp", "config": { "id": "mcp", "hooks": { "after": [ {} ] }, "endpoints": {}, "schema": { "oauthApplication": { "modelName": "oauthApplication", "fields": { "name": { "type": "string" }, "icon": { "type": "string", "required": false }, "metadata": { "type": "string", "required": false }, "clientId": { "type": "string", "unique": true }, "clientSecret": { "type": "string", "required": false }, "redirectUrls": { "type": "string" }, "type": { "type": "string" }, "disabled": { "type": "boolean", "required": false, "defaultValue": false }, "userId": { "type": "string", "required": false, "references": { "model": "user", "field": "id", "onDelete": "cascade" }, "index": true }, "createdAt": { "type": "date" }, "updatedAt": { "type": "date" } } }, "oauthAccessToken": { "modelName": "oauthAccessToken", "fields": { "accessToken": { "type": "string", "unique": true }, "refreshToken": { "type": "string", "unique": true }, "accessTokenExpiresAt": { "type": "date" }, "refreshTokenExpiresAt": { "type": "date" }, "clientId": { "type": "string", "references": { "model": "oauthApplication", "field": "clientId", "onDelete": "cascade" }, "index": true }, "userId": { "type": "string", "required": false, "references": { "model": "user", "field": "id", "onDelete": "cascade" }, "index": true }, "scopes": { "type": "string" }, "createdAt": { "type": "date" }, "updatedAt": { "type": "date" } } }, "oauthConsent": { "modelName": "oauthConsent", "fields": { "clientId": { "type": "string", "references": { "model": "oauthApplication", "field": "clientId", "onDelete": "cascade" }, "index": true }, "userId": { "type": "string", "references": { "model": "user", "field": "id", "onDelete": "cascade" }, "index": true }, "scopes": { "type": "string" }, "createdAt": { "type": "date" }, "updatedAt": { "type": "date" }, "consentGiven": { "type": "boolean" } } } } } }, { "name": "oidc", "config": { "id": "oidc", "hooks": { "after": [ {} ] }, "endpoints": {}, "schema": { "oauthApplication": { "modelName": "oauthApplication", "fields": { "name": { "type": "string" }, "icon": { "type": "string", "required": false }, "metadata": { "type": "string", "required": false }, "clientId": { "type": "string", "unique": true }, "clientSecret": { "type": "string", "required": false }, "redirectUrls": { "type": "string" }, "type": { "type": "string" }, "disabled": { "type": "boolean", "required": false, "defaultValue": false }, "userId": { "type": "string", "required": false, "references": { "model": "user", "field": "id", "onDelete": "cascade" }, "index": true }, "createdAt": { "type": "date" }, "updatedAt": { "type": "date" } } }, "oauthAccessToken": { "modelName": "oauthAccessToken", "fields": { "accessToken": { "type": "string", "unique": true }, "refreshToken": { "type": "string", "unique": true }, "accessTokenExpiresAt": { "type": "date" }, "refreshTokenExpiresAt": { "type": "date" }, "clientId": { "type": "string", "references": { "model": "oauthApplication", "field": "clientId", "onDelete": "cascade" }, "index": true }, "userId": { "type": "string", "required": false, "references": { "model": "user", "field": "id", "onDelete": "cascade" }, "index": true }, "scopes": { "type": "string" }, "createdAt": { "type": "date" }, "updatedAt": { "type": "date" } } }, "oauthConsent": { "modelName": "oauthConsent", "fields": { "clientId": { "type": "string", "references": { "model": "oauthApplication", "field": "clientId", "onDelete": "cascade" }, "index": true }, "userId": { "type": "string", "references": { "model": "user", "field": "id", "onDelete": "cascade" }, "index": true }, "scopes": { "type": "string" }, "createdAt": { "type": "date" }, "updatedAt": { "type": "date" }, "consentGiven": { "type": "boolean" } } } }, "options": { "codeExpiresIn": 600, "defaultScope": "openid", "accessTokenExpiresIn": 3600, "refreshTokenExpiresIn": 604800, "allowPlainCodeChallengeMethod": true, "storeClientSecret": "[REDACTED]", "loginPage": "http://localhost:5001/login", "consentPage": "http://localhost:5001/oauth/consent", "scopes": [ "openid", "profile", "email", "offline_access", "profile", "email" ], "trustedClients": [ { "clientId": "[REDACTED]", "clientSecret": "[REDACTED]", "name": "Astuto", "type": "web", "redirectUrls": [ "https://feedback.my-app.com/o_auths/bb6a229651b42f50/callback" ], "disabled": false, "skipConsent": true, "metadata": { "internal": true } } ] } } }, { "name": "email-otp", "config": { "id": "email-otp", "endpoints": {}, "hooks": { "after": [ {} ] }, "$ERROR_CODES": { "OTP_EXPIRED": "OTP expired", "INVALID_OTP": "Invalid OTP", "TOO_MANY_ATTEMPTS": "Too many attempts" }, "rateLimit": [ { "window": 60, "max": 3 }, { "window": 60, "max": 3 }, { "window": 60, "max": 3 }, { "window": 60, "max": 3 } ] } }, { "name": "stripe", "config": { "id": "stripe", "endpoints": {}, "schema": { "subscription": { "fields": { "plan": { "type": "string", "required": true }, "referenceId": { "type": "string", "required": true }, "stripeCustomerId": { "type": "string", "required": false }, "stripeSubscriptionId": { "type": "string", "required": false }, "status": { "type": "string", "defaultValue": "incomplete" }, "periodStart": { "type": "date", "required": false }, "periodEnd": { "type": "date", "required": false }, "trialStart": { "type": "date", "required": false }, "trialEnd": { "type": "date", "required": false }, "cancelAtPeriodEnd": { "type": "boolean", "required": false, "defaultValue": false }, "seats": { "type": "number", "required": false } } }, "user": { "fields": { "stripeCustomerId": { "type": "string", "required": false } } } }, "$ERROR_CODES": { "SUBSCRIPTION_NOT_FOUND": "Subscription not found", "SUBSCRIPTION_PLAN_NOT_FOUND": "Subscription plan not found", "ALREADY_SUBSCRIBED_PLAN": "You're already subscribed to this plan", "UNABLE_TO_CREATE_CUSTOMER": "Unable to create customer", "FAILED_TO_FETCH_PLANS": "Failed to fetch plans", "EMAIL_VERIFICATION_REQUIRED": "Email verification is required before you can subscribe to a plan", "SUBSCRIPTION_NOT_ACTIVE": "Subscription is not active", "SUBSCRIPTION_NOT_SCHEDULED_FOR_CANCELLATION": "Subscription is not scheduled for cancellation" } } }, { "name": "custom-session", "config": { "id": "custom-session", "hooks": { "after": [ {} ] }, "endpoints": {}, "$Infer": { "Session": {} } } } ] } } }Which area(s) are affected? (Select all that apply)
Backend
Auth config (if applicable)
Partial Config
import { Env } from "../../../../../workspace/things/api/src/Environment"; import { sendPasswordChangedEmail, sendVerificationEmail, sendOTPEmail } from "../../../../../workspace/things/api/src/lib/email-templates"; import { posthog } from "../../../../../workspace/things/api/src/Posthog"; import { distinctId } from "../../../../../workspace/things/api/src/PosthogDistinctId"; import { storeUploadedFiles, deleteStoredFile } from "../../../../../workspace/things/api/src/CloudflareR2"; import { FileBucket } from "../../../../../workspace/things/api/src/generated/prisma/enums"; import { sendWelcomeMessage } from "../../../../../workspace/things/api/src/Chat.service"; import { reservedUsernames } from "../../../../../workspace/things/api/src/lib/reserved-usernames"; import { User, BetterAuthOptions, betterAuth } from "better-auth"; import { stripe } from "@better-auth/stripe"; import { sendSubscriptionNotification } from "../../../../../workspace/things/api/src/lib/discord-notifications"; import { buildAvatarUrls } from "../../../../../workspace/things/api/src/lib/better-auth-helpers"; import { SubscriptionLimits, stripeSubscriptionReferenceId } from "../../../../../workspace/things/api/src/lib/auth"; import { customSession, username, mcp, oidcProvider, Client, emailOTP } from "better-auth/plugins"; import { stripeClient } from "@better-auth/stripe/client"; import { prismaAdapter } from "better-auth/adapters/prisma"; import { createAuthMiddleware } from "better-auth/api";const options = {
basePath: "/v1/auth",
baseURL: Env.BETTER_AUTH_URL,
appName: "Sumthings",
trustedOrigins: [
"http://localhost:5001",
...
],
socialProviders: {
discord: {
clientId: Env.DISCORD_CLIENT_ID,
clientSecret: Env.DISCORD_CLIENT_SECRET,
redirectURI:
${Env.APP_BASE_URL}/v1/auth/callback/discord,},
},
database: prismaAdapter(...),
user: {
modelName: "User",
additionalFields: {
avatarUploadId: {
type: "string",
input: true,
required: false,
returned: false,
},
referrerUsername: {
type: "string",
input: true,
required: false,
returned: false,
},
profileComplete: {
type: "boolean",
input: true,
required: false,
returned: true,
},
},
},
session: {
expiresIn: 60 * 60 * 24 * 365, // 1 year - session without any activity for 1 year becomes expired.
// Updated sessions are extended, not recreated, so doing this often will not create more database entries.
updateAge: 60 * 60 * 24, // 24 hours
freshAge: 60 * 15, // 15 minutes - session is considered fresh for sensitive operations
cookieCache: {
enabled: true,
maxAge: 5 * 60, // Cache duration in seconds
},
},
emailAndPassword: {
enabled: true,
requireEmailVerification: true,
...
},
emailVerification: { ... },
advanced: {
database: {
generateId: "serial",
},
...
},
databaseHooks: { ... },
plugins: [
username({ ... }),
mcp({
loginPage:
${Env.APP_BASE_URL}/login,}),
oidcProvider({
loginPage:
${Env.APP_BASE_URL}/login,consentPage:
${Env.APP_BASE_URL}/oauth/consent,scopes: ["profile", "email"],
getAdditionalUserInfoClaim: async (
user: User & Record<string, unknown>,
scopes: string[],
_client: Client,
): Promise<Record<string, unknown>> => {
if (scopes.includes("profile")) {
const userId = Number(user.id);
if (!isNaN(userId)) {
const user = await prisma.user.findUnique(
{ where: { id: userId }, select: { displayUsername: true } },
);
if (user) {
return {
...user,
preferred_username: user.displayUsername,
};
}
}
}
],
} satisfies BetterAuthOptions;
export const auth = betterAuth({
...options,
plugins: [
...options.plugins,
customSession(async ({ user, session }, ctx) => {
...
}, options),
],
});
Additional context
No response
@dosubot[bot] commented on GitHub (Nov 25, 2025):
You are correct: in v1.4.1, the /oauth2/userinfo endpoint in the oidc-provider plugin uses sessionMiddleware, which requires cookie-based authentication and causes 401 errors for Bearer token requests. This regression was introduced in PR #2107 when operationId metadata was added and sessionMiddleware was unintentionally included on this route. The OIDC spec requires userinfo to accept Bearer tokens via the Authorization header, so this breaks compliance.
Removing use: [sessionMiddleware] from the /oauth2/userinfo route in packages/better-auth/src/plugins/oidc-provider/index.ts will restore the expected OIDC behavior and resolve the 401 error for OAuth clients using Bearer tokens. The endpoint already validates Bearer tokens and user claims as required by the spec, so removing the middleware will not introduce security issues or expose user data inappropriately. No other issues or discussions about this regression were found in the repo, and this fix is the minimal, spec-compliant solution.
Reference: code and PR #2107
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
@Jackman3005 commented on GitHub (Nov 25, 2025):
Ahh, looks like this has been resolved in a PR just recently! Thanks @Bekacru 🤩
I'll close when a new version of
1.4.xis released with the fix.