[Video] Properly get the service auth aud from the session (#5025)

This commit is contained in:
Hailey 2024-08-29 13:44:47 -07:00 committed by GitHub
parent 91fe41670f
commit 69e896c221
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 34 additions and 6 deletions

View file

@ -7,6 +7,7 @@ import {cancelable} from '#/lib/async/cancelable'
import {CompressedVideo} from '#/lib/media/video/compress'
import {createVideoEndpointUrl} from '#/state/queries/video/util'
import {useAgent, useSession} from '#/state/session'
import {getServiceAuthAudFromUrl} from 'lib/strings/url-helpers'
export const useUploadVideoMutation = ({
onSuccess,
@ -30,14 +31,18 @@ export const useUploadVideoMutation = ({
name: `${nanoid(12)}.mp4`, // @TODO what are we limiting this to?
})
// a logged-in agent should have this set, but we'll check just in case
if (!agent.pdsUrl) {
if (!currentAccount?.service) {
throw new Error('User is not logged in')
}
const serviceAuthAud = getServiceAuthAudFromUrl(currentAccount.service)
if (!serviceAuthAud) {
throw new Error('Agent does not have a PDS URL')
}
const {data: serviceAuth} = await agent.com.atproto.server.getServiceAuth(
{
aud: `did:web:${agent.pdsUrl.hostname}`,
aud: serviceAuthAud,
lxm: 'com.atproto.repo.uploadBlob',
},
)