Do service auth for init
This commit is contained in:
@@ -1,27 +1,48 @@
|
|||||||
import {
|
import {
|
||||||
type AppBskyUnspeccedDefs,
|
type AppBskyUnspeccedDefs,
|
||||||
type AppBskyUnspeccedInitAgeAssurance,
|
type AppBskyUnspeccedInitAgeAssurance,
|
||||||
|
AtpAgent,
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import {useMutation, useQueryClient} from '@tanstack/react-query'
|
import {useMutation, useQueryClient} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {wait} from '#/lib/async/wait'
|
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 {isNetworkError} from '#/lib/hooks/useCleanError'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
import {createAgeAssuranceQueryKey} from '#/state/age-assurance'
|
import {createAgeAssuranceQueryKey} from '#/state/age-assurance'
|
||||||
import {useAgent} from '#/state/session'
|
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() {
|
export function useInitAgeAssurance() {
|
||||||
const qc = useQueryClient()
|
const qc = useQueryClient()
|
||||||
const agent = useAgent()
|
const agent = useAgent()
|
||||||
return useMutation({
|
return useMutation({
|
||||||
async mutationFn(props: AppBskyUnspeccedInitAgeAssurance.InputSchema) {
|
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
|
* 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.
|
* ensure the email is ready for the user once they open their inbox.
|
||||||
*/
|
*/
|
||||||
const {data} = await wait(
|
const {data} = await wait(
|
||||||
2e3,
|
2e3,
|
||||||
agent.app.bsky.unspecced.initAgeAssurance(props),
|
appView.app.bsky.unspecced.initAgeAssurance(props),
|
||||||
)
|
)
|
||||||
|
|
||||||
qc.setQueryData<AppBskyUnspeccedDefs.AgeAssuranceState>(
|
qc.setQueryData<AppBskyUnspeccedDefs.AgeAssuranceState>(
|
||||||
|
|||||||
@@ -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_APPVIEW_DID = 'did:web:api.bsky.app'
|
||||||
export const PUBLIC_STAGING_APPVIEW_DID = 'did:web:api.staging.bsky.dev'
|
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`
|
||||||
|
|||||||
Reference in New Issue
Block a user