getSession
在客户端工作正常,但在服务器端工作不正常
在服务器端调用它时,我在服务器上收到此错误:
错误-〉https://next-auth.js.org/errors#client_fetch_error会话获取错误:对https://nextauth_url_internal/api/auth/session的请求失败,原因:获取地址信息未找到nextauth_url_internal
服务器端代码
export const getServerSideProps = async (context) => {
const { req } = context;
try {
const session = await getSession({ req });
console.log({ session });
if (!session) return { redirect: { destination: '/', permanent: false } };
return { props: { session } };
} catch (error) {
console.log(error);
}
};
4条答案
按热度按时间ars1skjm1#
似乎您没有配置NEXTAUTH_URL环境变量。
91zkwejq2#
你能试试这个吗:删除. next build文件夹,并通过运行
npm run build
创建一个新版本。再试一次。
hujrc8aj3#
在NextAuth函数中添加secret选项
hlswsv354#
我也遇到过同样的问题,结果是我没有正确设置env。
我在GitHub上使用了不同的“OAuth App”进行“开发”和“生产”。
确保您的本地环境和生产环境对应于正确的GitHub OAuth应用。(GITHUB_ID,GITHUB_SECRET,NEXTAUTH_URL)确保OAuth应用上的callback_URL与NEXTAUTH_URL相同。
此外,您还需要一个用于生产的“秘密”env变量,但不一定用于本地,因为它将在开发时自动生成。