我的NextAuth在凭据提供程序自定义登录时搜索api/auth/session
时返回404,似乎Next Auth指向了错误的URL。
我的next.config.js有一个指向子文件夹basePath: '/twenty-test'
的basePath,并且我的NEXTAUTH_URL
已经设置为我的子域,但是当我转到我的凭据提供程序登录自定义页面时(该页面在localhost上工作,因为它不在子域中),我在https://explample.com/api/auth/session 404
之类的控制台上看到一个404错误。
这是我的自定义提供程序配置:
providers: [
CredentialProvider({
name: 'Credentials',
type: 'credentials',
async authorize(credentials) {
//
if(credentials.email == "john@gmail.com" && credentials.password == "test"){
return {
id: 2,
name: 'John Doe',
email: 'john@gmail.com',
permition: {
group: 2,
level: 0
}
}
}
return null;
}
})
],
这是我的next.config.js
const nextConfig = {
reactStrictMode: true,
basePath: '/twenty-test',
images: {
domains: ['example.com'],
},
}
module.exports = nextConfig
这是我的NEXTAUTH_URL
环境变量
NEXTAUTH_URL="https://example.com/twenty-test/api/auth"
这是我的getCsrfToken
配置
export async function getServerSideProps(context) {
return {
props: {
csrfToken: await getCsrfToken(context)
}
}
}
我的项目不在vercel上。我正在使用自定义服务器配置来部署cPanel
1条答案
按热度按时间yb3bgrhw1#
问题在于在localhost中构建应用程序并在服务器上部署。
应用程序正在构建,预期NEXTAUTH_URL为localhost,简单地更改服务器上的.env变量不起作用。
解决方案是在服务器上构建应用程序。
另一种解决方法是在构建后使用服务器上的NEXTAUTH_URL值替换本地主机NEXTAUTH_URL ocurrences。