[READ-ONLY] Mirror of https://github.com/flo-bit/bluesky-website-generator.
bluesky-website-generator.vercel.app
1.1 kB
29 lines
1import { NodeOAuthClient } from '@atproto/oauth-client-node';
2import { db } from './db';
3import { SessionStore, StateStore } from './storage';
4import { dev } from '$app/environment';
5
6const publicUrl = 'https://bluesky-website-generator.vercel.app';
7const port = 5420;
8const url = dev ? `http://[::1]:${port}` : publicUrl;
9
10const encodeCallbackUrl = encodeURIComponent(`${url}/oauth/callback`);
11const devClientId = `http://localhost?redirect_uri=${encodeCallbackUrl}&scope=${encodeURIComponent('atproto transition:generic')}`;
12const clientId = !dev ? `${publicUrl}/client-metadata.json` : devClientId;
13
14export const atclient = new NodeOAuthClient({
15 stateStore: new StateStore(db),
16 sessionStore: new SessionStore(db),
17
18 clientMetadata: {
19 client_name: 'skywatched',
20 client_id: clientId,
21 client_uri: url,
22 redirect_uris: [`${url}/oauth/callback`],
23 scope: 'atproto transition:generic',
24 grant_types: ['authorization_code', 'refresh_token'],
25 application_type: 'web',
26 token_endpoint_auth_method: 'none',
27 dpop_bound_access_tokens: true
28 }
29});