







A better-auth plugin that adds ATProto/Bluesky OAuth 2.1 authentication (DPoP, PAR, PKCE) via @atcute/oauth-node-client.
tijs/atproto-oauth
Framework-agnostic OAuth integration for AT Protocol (Bluesky) applications
ATProto OAuth Quickstart Guide | Artur | Looking for work
Setting Up Bluesky OAuth in Your Web App: A Developer's Guide If you're building an app that needs to authenticate with Bluesky, you'll need to implement their OAuth flow. While the official docs are comprehensive, they can be a bit overwhelming. Let's break down the process into manageable steps. ...
atproto/packages/oauth/oauth-client-node/README.md at main · bluesky-social/atproto
Social networking technology created by Bluesky. Contribute to bluesky-social/atproto development by creating an account on GitHub.
Service Auth | Bluesky
There are currently two "types" of auth supported in the atproto network: client-server auth and service-to-service auth.

atproto/packages/oauth/oauth-client-browser at main · bluesky-social/atproto
Social networking technology created by Bluesky. Contribute to bluesky-social/atproto development by creating an account on GitHub.
@atproto/oauth-client
OAuth client for ATPROTO PDS. This package serves as common base for environment-specific implementations (NodeJS, Browser, React-Native).. Latest version: 0.4.0, last published: 8 hours ago. Start using @atproto/oauth-client in your project by running `npm i @atproto/oauth-client`. There are 3 other projects in the npm registry using @atproto/oauth-client.
OAuth for ATProto Apps Part 2: Mobile Implementation - Lost in Inference
Part 2 of a 2-part series on implementing OAuth authentication for ATProto (Bluesky) applications.
your app can run its own pds - keith.is
if you’re building on atproto, you’ve probably reached for “sign in with bluesky” as your auth story. it works! the OAuth flow is fine. but every time a user shows up without a bluesky account, you have to send them to bluesky first, watch them get confused by a totally different brand, and hope they come back. that’s a weird seam in your own product.

OAuth for AT Protocol | Bluesky
We are very happy to release the initial specification of OAuth for AT Protocol! This is expected to be the primary authentication and authorization system between atproto client apps and PDS instances going forward, replacing the current flow using App Passwords and createSession over time.

OAuth Improvements - AT Protocol
We've been making improvements to the end-user and developer experiences with atproto OAuth.

OAuth Client Security in the Atmosphere · bluesky-social atproto · Discussion #3950
The following was written by the Bluesky team as an overview of OAuth client security considerations, especially for client app developers or readers of the ATProto OAuth profile specification. Set...
OAuth Client Implementation | Bluesky
This is a guide to implementing atproto OAuth clients "The Hard Way." Optimistically, most developers will have an SDK available for their programming language which supports OAuth, and they can simply refer to SDK documentation. This guide is intended for early adopters, SDK maintainers, or developers with more sophisticated OAuth needs. It is agnostic to whether developers are building clients to work the the app.bsky microblogging Lexicons, or implementing novel application Lexicons.

sparrowtek.com/atproto-auth-proxy
Stateless auth proxy that converts AT Protocol native apps from public to confidential OAuth clients. Deploy once, get 180-day refresh tokens instead of 24-hour ones.
sparrowtek.com/atproto-auth-proxy
Stateless auth proxy that converts AT Protocol native apps from public to confidential OAuth clients. Deploy once, get 180-day refresh tokens instead of 24-hour ones.
Did you know you can start a testing ATProto OAuth client with this simple command? $ pnpx @atproto/oauth-client-browser-example 8080 You can then use the inspector console to interact with your PDS: `await bskyClient.get(app.bsky.actor.profile)` `await bskyClient.list(app.bsky.feed.post)` ...