From 5c141d750ebcdc3aed72328dd3d77239cde5728a Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 9 Jul 2025 15:08:14 -0500 Subject: [PATCH] Do service auth for init --- .../ageAssurance/useInitAgeAssurance.ts | 23 ++++++++++++++++++- src/lib/constants.ts | 4 ++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/components/ageAssurance/useInitAgeAssurance.ts b/src/components/ageAssurance/useInitAgeAssurance.ts index 3d68836bf2..11c78b69e9 100644 --- a/src/components/ageAssurance/useInitAgeAssurance.ts +++ b/src/components/ageAssurance/useInitAgeAssurance.ts @@ -1,27 +1,48 @@ import { type AppBskyUnspeccedDefs, type AppBskyUnspeccedInitAgeAssurance, + AtpAgent, } from '@atproto/api' import {useMutation, useQueryClient} from '@tanstack/react-query' import {wait} from '#/lib/async/wait' +import { + DEV_ENV_APPVIEW, + DEV_ENV_APPVIEW_DID, + PUBLIC_APPVIEW, + PUBLIC_APPVIEW_DID, +} from '#/lib/constants' import {isNetworkError} from '#/lib/hooks/useCleanError' import {logger} from '#/logger' import {createAgeAssuranceQueryKey} from '#/state/age-assurance' import {useAgent} from '#/state/session' +const APPVIEW = __DEV__ ? DEV_ENV_APPVIEW : PUBLIC_APPVIEW +const APPVIEW_DID = __DEV__ ? DEV_ENV_APPVIEW_DID : PUBLIC_APPVIEW_DID + export function useInitAgeAssurance() { const qc = useQueryClient() const agent = useAgent() return useMutation({ async mutationFn(props: AppBskyUnspeccedInitAgeAssurance.InputSchema) { + const { + data: {token}, + } = await agent.com.atproto.server.getServiceAuth({ + aud: APPVIEW_DID, + lxm: `app.bsky.unspecced.initAgeAssurance`, + }) + + const appView = new AtpAgent({service: APPVIEW}) + appView.sessionManager.session = agent.session! + appView.sessionManager.session.accessJwt = token + /* * 2s wait is good actually. Email sending takes a hot sec and this helps * ensure the email is ready for the user once they open their inbox. */ const {data} = await wait( 2e3, - agent.app.bsky.unspecced.initAgeAssurance(props), + appView.app.bsky.unspecced.initAgeAssurance(props), ) qc.setQueryData( diff --git a/src/lib/constants.ts b/src/lib/constants.ts index a21b92de56..06c2d1a53f 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -202,5 +202,9 @@ export const urls = { }, } +export const PUBLIC_APPVIEW = 'https://api.bsky.app' export const PUBLIC_APPVIEW_DID = 'did:web:api.bsky.app' export const PUBLIC_STAGING_APPVIEW_DID = 'did:web:api.staging.bsky.dev' + +export const DEV_ENV_APPVIEW = `http://localhost:2584` // always the same +export const DEV_ENV_APPVIEW_DID = `did:plc:cs5onzby6e5yv25qfhtiatsa` // get this from `localhost:2581`