@graze.social (and I) just open sourced AIP, a small but powerful service to ease OAuth session handling in the ATmosphere. It supports both did:plc and did:web identities and simplifies session management for apps using ATProtocol.
Comments
Log in with your Bluesky account to leave a comment
Would this be stood up by the oAuth clients and serve as an authorization proxy, or is it meant for those who are hosting and need to provide an authorization service? Or both? Sounds super neat, but solution unclear??
AIP makes it easy to manage OAuth and app-password sessions in one place. It handles auth flows, token persistence, and lets identities move across AppViews with fewer headaches.
One of the most annoying parts of OAuth is session refreshing. AIP solves that. It proactively refreshes sessions so your apps get fresh tokens without blocking the user.
AIP isnβt just a session manager: it can proxy XRPC calls too. That means your app can talk to a PDS through AIP without ever needing to store or refresh credentials directly.
By offloading token handling and session refresh logic to AIP, you can build apps that are faster, simpler, and more secure, especially in multi-identity or federated setups.
AIP handles OAuth and app-password auth for ATProto. Auth once to get a JWT, then fetch DPoP or bearer creds for API calls. It also auto-refreshes sessions, so tokens stay valid without blocking your app.
I think to Emiliaβs point - the docs only talk about running it, they donβt indicate anything about what endpoints are available, what they do, or how to integrate this into an app 1/3
As an example - suppose I have this running. How do I update my app to start the flow and make service calls in the background of my app? Where do I get the appropriate tokens, etc?
I believe it does this, but as a consumed service it should be an example in the docs so we donβt have to dig 2/3
And I fully get that this is brand new/just out!! No shade! Time is a limited resource! Just that it would be nice to have these things for faster adoption and getting people onboard with it faster π esp. given that it relieves a Huge blocker for a lot of folks! 3/3
@ngerakines.me ^ this is more what I mean, like I think I get what this is as a concept (though I have questions) but what it is in practice still is unclear to me, all of @rhalin.bsky.social questions apply
Comments
https://github.com/graze-social/jetstream-turbo
I believe it does this, but as a consumed service it should be an example in the docs so we donβt have to dig 2/3