atprotocol stickers
at main 50 lines 1.5 kB view raw
1import { configureOAuth } from '@atcute/oauth-browser-client'; 2import { 3 LocalActorResolver, 4 CompositeDidDocumentResolver, 5 PlcDidDocumentResolver, 6 XrpcDidDocumentResolver, 7 CompositeHandleResolver, 8 WellKnownHandleResolver, 9 DohJsonHandleResolver 10} from '@atcute/identity-resolver'; 11 12let configured = false; 13 14export function ensureOAuthConfigured() { 15 if (configured) return; 16 configured = true; 17 18 const didDocumentResolver = new CompositeDidDocumentResolver({ 19 methods: { 20 plc: new PlcDidDocumentResolver(), 21 web: new XrpcDidDocumentResolver({ serviceUrl: 'https://bsky.social' }) 22 } 23 }); 24 25 const handleResolver = new CompositeHandleResolver({ 26 methods: { 27 http: new WellKnownHandleResolver(), 28 dns: new DohJsonHandleResolver({ dohUrl: 'https://cloudflare-dns.com/dns-query' }) 29 } 30 }); 31 32 const identityResolver = new LocalActorResolver({ handleResolver, didDocumentResolver }); 33 34 const isLocalhost = 35 window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'; 36 const port = window.location.port || '5173'; 37 38 configureOAuth({ 39 metadata: isLocalhost 40 ? { 41 client_id: `http://localhost?redirect_uri=${encodeURIComponent('http://127.0.0.1/oauth/callback')}&scope=${encodeURIComponent('atproto transition:generic')}`, 42 redirect_uri: `http://127.0.0.1:${port}/oauth/callback` 43 } 44 : { 45 client_id: 'https://stickies.sky.boo/client-metadata.json', 46 redirect_uri: 'https://stickies.sky.boo/oauth/callback' 47 }, 48 identityResolver 49 }); 50}