[PR #3196] [CLOSED] feat: Steam social provider #21600

Closed
opened 2026-04-15 20:28:55 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/3196
Author: @ping-maxwell
Created: 6/27/2025
Status: Closed

Base: canaryHead: feat/oauth/steam


📝 Commits (10+)

  • d1fe109 Revert "chore: bump tailwindcss to v4 (#4681)"
  • 1e86e4c refactor: remove unused generics (#4691)
  • 62b5069 fix(api-key): cascade api keys on user deletion (#4703)
  • 578a64e fix: device authorization plugin (#4695)
  • adfc484 fix(organization): decouple client and server permission checks (#4707)
  • fd29b5b fix: reduce any type in generator.ts (#4710)
  • bb5513d Reapply "chore: bump tailwindcss to v4 (#4681)"
  • c335407 fix: refresh secondary storage sessions on user update (#4522)
  • c6e5dab fix(adapter): returning null as string for optional id references (#4713)
  • 3ec47de chore(demo): fix globals.css (#4725)

📊 Changes

47 files changed (+2065 additions, -283 deletions)

View changed files

📝 demo/nextjs/app/globals.css (+91 -51)
📝 docs/app/docs/[[...slug]]/page.tsx (+2 -0)
📝 docs/components/icons.tsx (+23 -0)
docs/components/mdx/add-to-cursor.tsx (+41 -0)
📝 docs/components/sidebar-content.tsx (+22 -0)
📝 docs/content/docs/authentication/discord.mdx (+42 -16)
docs/content/docs/authentication/steam.mdx (+188 -0)
📝 docs/content/docs/concepts/oauth.mdx (+201 -30)
docs/content/docs/integrations/convex.mdx (+347 -0)
📝 docs/content/docs/introduction.mdx (+48 -7)
📝 docs/content/docs/plugins/device-authorization.mdx (+6 -6)
📝 packages/better-auth/package.json (+1 -1)
📝 packages/better-auth/src/__snapshots__/init.test.ts.snap (+2 -1)
📝 packages/better-auth/src/adapters/adapter-factory/index.ts (+5 -2)
📝 packages/better-auth/src/adapters/adapter-factory/test/adapter-factory.test.ts (+47 -0)
📝 packages/better-auth/src/adapters/adapter-factory/types.ts (+1 -0)
📝 packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts (+1 -1)
📝 packages/better-auth/src/adapters/kysely-adapter/dialect.ts (+4 -0)
📝 packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts (+1 -1)
📝 packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts (+1 -1)

...and 27 more files

📄 Description

Better-Auth does not currently support Steam as a provider because Steam authentication does not comply with OAuth or OIDC standards. For example, it does not respect state, does not require a client ID, client secret, or application registration with redirect whitelisting, and lacks an OIDC endpoint—instead, you must use your own API key to call ISteamUser/GetPlayerSummaries/v002/ after receiving the callback. Additionally, Steam does not return an email address, as user information is only accessible via a public profile endpoint. Due to these incompatibilities, integrating Steam with a spec-compliant adapter is not feasible, so a custom plugin is required.

Big thanks to the initial implementation from https://gist.github.com/Whats-A-MattR/5bce5574e568e8d8e6be55cf692df3a1 while a lot of the logic is re-written, this was a good head start for me!

Status: in-development

  • docs

IMPORTANT

I'm closing this PR because of merge conflict issues, was easier to just open a new PR:
https://github.com/better-auth/better-auth/pull/4877


🔄 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/3196 **Author:** [@ping-maxwell](https://github.com/ping-maxwell) **Created:** 6/27/2025 **Status:** ❌ Closed **Base:** `canary` ← **Head:** `feat/oauth/steam` --- ### 📝 Commits (10+) - [`d1fe109`](https://github.com/better-auth/better-auth/commit/d1fe10962079c82920ea078a9847f65a59907b81) Revert "chore: bump tailwindcss to v4 (#4681)" - [`1e86e4c`](https://github.com/better-auth/better-auth/commit/1e86e4c138235fe6539e2795d0fd8a9f511b4716) refactor: remove unused generics (#4691) - [`62b5069`](https://github.com/better-auth/better-auth/commit/62b50691b1db7396241aaacf6a6501c09c97e1b6) fix(api-key): cascade api keys on user deletion (#4703) - [`578a64e`](https://github.com/better-auth/better-auth/commit/578a64eb965da77254c14a676128812df4646d83) fix: device authorization plugin (#4695) - [`adfc484`](https://github.com/better-auth/better-auth/commit/adfc484fcd9dce4976a649795a7915bcd9f116a0) fix(organization): decouple client and server permission checks (#4707) - [`fd29b5b`](https://github.com/better-auth/better-auth/commit/fd29b5bd19f3dd8ee46c7615a5a581efc18fe1cc) fix: reduce any type in generator.ts (#4710) - [`bb5513d`](https://github.com/better-auth/better-auth/commit/bb5513d216b996206d9e21b21cdee20f4d98fd60) Reapply "chore: bump tailwindcss to v4 (#4681)" - [`c335407`](https://github.com/better-auth/better-auth/commit/c33540765860569a016574cb9e9cdc74f0ecfec5) fix: refresh secondary storage sessions on user update (#4522) - [`c6e5dab`](https://github.com/better-auth/better-auth/commit/c6e5dab8ab40386ac033e15e2695832105f66edf) fix(adapter): returning null as string for optional id references (#4713) - [`3ec47de`](https://github.com/better-auth/better-auth/commit/3ec47dedbd6f2c87f337a9fcbe93d70cc39d735d) chore(demo): fix globals.css (#4725) ### 📊 Changes **47 files changed** (+2065 additions, -283 deletions) <details> <summary>View changed files</summary> 📝 `demo/nextjs/app/globals.css` (+91 -51) 📝 `docs/app/docs/[[...slug]]/page.tsx` (+2 -0) 📝 `docs/components/icons.tsx` (+23 -0) ➕ `docs/components/mdx/add-to-cursor.tsx` (+41 -0) 📝 `docs/components/sidebar-content.tsx` (+22 -0) 📝 `docs/content/docs/authentication/discord.mdx` (+42 -16) ➕ `docs/content/docs/authentication/steam.mdx` (+188 -0) 📝 `docs/content/docs/concepts/oauth.mdx` (+201 -30) ➕ `docs/content/docs/integrations/convex.mdx` (+347 -0) 📝 `docs/content/docs/introduction.mdx` (+48 -7) 📝 `docs/content/docs/plugins/device-authorization.mdx` (+6 -6) 📝 `packages/better-auth/package.json` (+1 -1) 📝 `packages/better-auth/src/__snapshots__/init.test.ts.snap` (+2 -1) 📝 `packages/better-auth/src/adapters/adapter-factory/index.ts` (+5 -2) 📝 `packages/better-auth/src/adapters/adapter-factory/test/adapter-factory.test.ts` (+47 -0) 📝 `packages/better-auth/src/adapters/adapter-factory/types.ts` (+1 -0) 📝 `packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts` (+1 -1) 📝 `packages/better-auth/src/adapters/kysely-adapter/dialect.ts` (+4 -0) 📝 `packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts` (+1 -1) 📝 `packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts` (+1 -1) _...and 27 more files_ </details> ### 📄 Description Better-Auth does not currently support Steam as a provider because Steam authentication does not comply with OAuth or OIDC standards. For example, it does not respect state, does not require a client ID, client secret, or application registration with redirect whitelisting, and lacks an OIDC endpoint—instead, you must use your own API key to call ISteamUser/GetPlayerSummaries/v002/ after receiving the callback. Additionally, Steam does not return an email address, as user information is only accessible via a public profile endpoint. Due to these incompatibilities, integrating Steam with a spec-compliant adapter is not feasible, so a custom plugin is required. Big thanks to the initial implementation from https://gist.github.com/Whats-A-MattR/5bce5574e568e8d8e6be55cf692df3a1 while a lot of the logic is re-written, this was a good head start for me! ## Status: in-development - [x] docs # IMPORTANT I'm closing this PR because of merge conflict issues, was easier to just open a new PR: https://github.com/better-auth/better-auth/pull/4877 --- <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-15 20:28:55 -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#21600