尝试使用 Next.js 从
getServerSideProps
内的 Supabase 获取用户时,收到以下证书错误:
AuthRetryableFetchError: request to https://[redacted].supabase.co/auth/v1/user failed, reason: self signed certificate in certificate chain
at [redacted]/node_modules/@supabase/gotrue-js/dist/main/lib/fetch.js:30:16
这是我的代码的简化版本,供参考:
export const getServerSideProps = async ({ req, res }) => {
const supabase = createServerSupabaseClient({ req, res });
const { data: { user }, error } = await supabase.auth.getUser();
if (error) console.error(error);
return {
props: {
user,
}
}
};
我已经分别使用
yarn
和 npm
设置 yarn config set cafile /path/to/certificate/file
和 npm config set cafile /path/to/certificate/file
来使用正确的证书,但由于某种原因,当 Next.js 尝试从服务器端(Node.js)获取此证书时它失败了,我不确定需要设置什么服务来告诉它证书的设置位置?
那里有很多类似的问题,但我找不到任何专门关于 Next.js 或在 Node.js 中遇到此问题的信息。
任何帮助表示赞赏。
因此,似乎可以通过在
NODE_TLS_REJECT_UNAUTHORIZED=0
中设置 env.local
来解决这个问题,但如果有人知道如何解决该问题而不是避免它,我仍然会感兴趣。