This is the changelog for auth. It follows semantic versioning.
-
Fix
createAtmosphereAuthProvider()handle resolution so a successful DNS or HTTPS handle lookup can start the OAuth flow immediately instead of waiting for the other lookup branch to finish. -
Bumped
@remix-run/*dependencies:
- Bumped
@remix-run/*dependencies:
-
Reject OAuth
returnTovalues that resolve outside the current origin when browsers normalize backslashes in redirect locations. -
Bumped
@remix-run/*dependencies:
- Bumped
@remix-run/*dependencies:
- Bumped
@remix-run/*dependencies:
- Bumped
@remix-run/*dependencies:
-
Added
createAtmosphereAuthProvider(options)to support atproto OAuth flows against Atmosphere-compatible authorization servers.The new provider resolves handles and DIDs with
provider.prepare(handleOrDid)before redirecting, performs required pushed authorization requests with DPoP, supports both public web clients and localhost loopback development clients, and seals per-session DPoP state into the in-flight OAuth transaction using the requiredsessionSecretoption instead of a separate persistent store.Create the Atmosphere provider once with shared options, call
provider.prepare(handleOrDid)only beforestartExternalAuth(), and pass the module-scope provider directly tofinishExternalAuth()andrefreshExternalAuth(). Atmosphere callback results preserve the DPoP binding state and authorization server refresh details alongside the returnedaccessTokenandrefreshToken, so callers can reuse the completed token bundle directly for refresh-token exchange and follow-up DPoP-signed requests. -
Added
refreshExternalAuth()to@remix-run/authso apps can exchange stored refresh tokens for fresh OAuth and OIDC token bundles.The built-in OIDC providers, X, and Atmosphere now implement refresh-token exchange. Refreshed token bundles preserve the existing refresh token when the provider omits a rotated value.
- Bumped
@remix-run/*dependencies:
-
Add
auth, a high-level browser authentication package for Remix.Includes:
- generic
oidc()support for standards-based providers - thin
microsoft(),okta(), andauth0()wrappers on top of OIDC - OAuth provider helpers for Google, GitHub, and Facebook
credentials()for email/password and other direct login flows- composable
verifyCredentials(),startExternalAuth(),finishExternalAuth(), andcompleteAuth()primitives for session-backed browser authentication - auth helpers that preserve richer
fetch-routerrequest context types
- generic
- Bumped
@remix-run/*dependencies: