[英]How can I use Redux RTK Query with aws API or integrate RTX with Aws cognito json Tokens?
我正在尝试将 RTK Query 与 aws API 请求集成。 我不需要使用 api 请求,但我需要使用 Cognito 提供的身份验证。
我试图以这种方式集成,但显然没有添加令牌:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
// Define a service using a base URL and expected endpoints
export const researchApi = createApi({
reducerPath: 'researchApi',
baseQuery: fetchBaseQuery({ baseUrl: process.env.NEXT_PUBLIC_API_RESEARCH }),
prepareHeaders: async (headers) => {
headers.set('Authorization', (await Auth.currentSession()).getIdToken().getJwtToken());
return headers;
},
endpoints: (builder) => ({
getResearch: builder.query({
query: () => `research`,
}),
}),
})
// Export hooks for usage in functional components, which are
// auto-generated based on the defined endpoints
export const { useGetResearchQuery } = researchApi
知道如何使两者协同工作吗? 使用 aws API 发送请求,或者将 json 令牌传递给请求的方法也可以。
干杯!
所以我做错了prepareHeaders,这里有一些工作代码:
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { Auth, API, Storage } from 'aws-amplify';
// Define a service using a base URL and expected endpoints
export const researchApi = createApi({
reducerPath: 'researchApi',
baseQuery: fetchBaseQuery({
baseUrl: process.env.NEXT_PUBLIC_API_RESEARCH,
prepareHeaders: async (headers, { getState }) => {
const token = (await Auth.currentSession()).getIdToken().getJwtToken();
headers.set('Authorization', `${token}`);
return headers;
}
}),
endpoints: (builder) => ({
getResearch: builder.query({
query: () => `research`,
}),
}),
})
// Export hooks for usage in functional components, which are
// auto-generated based on the defined endpoints
export const { useGetResearchQuery } = researchApi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.