A minimal starter for ATProto logins in Astro
1import { 2 atprotoLoopbackClientMetadata, 3 NodeOAuthClient, 4} from "@atproto/oauth-client-node"; 5import { env } from "./env"; 6import { SessionStore, StateStore } from "./storage"; 7 8export async function createOAuthClient() { 9 const clientMetadata = atprotoLoopbackClientMetadata( 10 `http://localhost?${new URLSearchParams([ 11 ["redirect_uri", `http://127.0.0.1:${env.PORT}/api/oauth/callback`], 12 ["scope", `atproto transition:generic`], 13 ])}`, 14 ); 15 16 return new NodeOAuthClient({ 17 clientMetadata, 18 stateStore: new StateStore(), 19 sessionStore: new SessionStore(), 20 }); 21}