我正在尝试将来自AWS Cognito的JWT令牌附加到我的上传组件中的Uppy请求。要获得令牌,我相信我需要一个异步函数:
async function getSessionToken() {
const data = (await Auth.currentSession()).getAccessToken().getJwtToken()
console.log(data)
return data;
}
然后我在实际的函数组件中使用这个返回值:
export default function UppyUpload () {
const data = getSessionToken();
const uppy = useUppy(() => {
return new Uppy({
debug: true,
autoProceed: false,
restrictions: {
maxNumberOfFiles: 1,
minNumberOfFiles: 1,
allowedFileTypes: ['video/*'],
requiredMetaFields: ['caption'],
}
})
.use(AwsS3Multipart, {
limit: 4,
companionUrl: 'http://localhost:3020/',
companionHeaders: {
'Authorization': "Bearer " + data,
'uppy-auth-token': "Bearer " + data,
}
})
...
但是,UppyUpload
中的data
返回了一个promise,正如预期的那样。但我需要以某种方式将其解析为一个值,因为我认为Uppy初始化在函数渲染时需要这个值(Authorization': "Bearer " + data
(。
我不知道如何解决这个问题,但我觉得这可能是一个常见的问题。有推荐的方法吗?
await应在函数之外使用
async function getSessionToken() {
const data = await (Auth.currentSession()).getAccessToken().getJwtToken()
console.log(data)
return data;
}