我正在尝试使用 AWS Amplify 和 Next JS 在 getServerSideProps
中的服务器端发出一个经过用户身份验证的 GraphQL 请求。
我的 AWS 数据库中的用户只有在他们是文档的所有者时才能访问数据。
我从中得到的错误是“没有当前用户”...(正在登录服务器)。 问题是,我需要 getServerSideProps 中可用的用户,以便我可以进行经过身份验证的请求。
这是我目前拥有的代码
index.tsx:
import Amplify, { API, graphqlOperation, withSSRContext } from "aws-amplify";
import config from "../aws-exports";
Amplify.configure({ ...config, ssr: true });
function Index({ bankAccounts }: { bankAccounts: BankAccount[] }) {
return (
...stuff...
);
}
index.tsx (getServerSideProps):
export const getServerSideProps: GetServerSideProps = async (context) => {
const { API } = withSSRContext(context);
const result = (await API.graphql({
query: listBankAccounts,
})) as {
data: ListBankAccountsQuery;
errors: any[];
};
if (!result.errors) {
return {
props: {
bankAccounts: result.data.listBankAccounts.items,
},
};
}
return {
props: {
bankAccounts: [],
},
};
};
如果您能提供任何帮助或建议,我将不胜感激!
答案 0 :(得分:2)
看起来您可能只需要在 authMode
调用中传入 API.graphql
。
在 SSR Support for AWS Amplify 博文中,在标题为在 getServerSideProps 中发出经过身份验证的 API 请求的部分内,您将看到如下所示的代码示例(注意添加了 {{ 1}} 下面,我在上面的代码示例中没有看到):
authMode