Sci*_*any 5 javascript next.js vercel next-auth
问题
我正在尝试使用 NextAuth 的电子邮件提供商来创建身份验证端点。它在本地工作。但是,在登录我们的实时网站时,我被重定向到“404 | 页面未找到”。
几天前,这段代码也可以在 Vercel 上运行。
代码
以下是身份验证处理程序和登录按钮。
页面/api/auth/[...nextauth].ts
import NextAuth from 'next-auth'
import { type NextAuthOptions } from 'next-auth'
import EmailProvider from 'next-auth/providers/email'
import { prisma } from '@onlyhelper/db'
import { PrismaAdapter } from '@next-auth/prisma-adapter'
export const authOptions: NextAuthOptions = {
// Configure one or more authentication providers
adapter: PrismaAdapter(prisma),
providers: [
EmailProvider({
server: process.env.ALL_EMAIL_SERVER,
from: 'hello@domainname.com'
})
],
secret: 'secret',
session: {},
callbacks: {
session({ session, user }) {
session.user.id = user.id
return session
}
}
}
export default NextAuth(authOptions)
Run Code Online (Sandbox Code Playgroud)
页面/login.tsx
import { signIn } from 'next-auth/react'
return (
<button onClick={() => signIn()}>
Sign In
</button>
)
Run Code Online (Sandbox Code Playgroud)
错误
在控制台的“找不到页面”页面中打印以下内容。
GET https://domainname/api/auth/error 404
GET https://domainname/api/auth/session 404
[next-auth][error][CLIENT_FETCH_ERROR]
https://next-auth.js.org/errors#client_fetch_error Unexpected token '<', "<!DOCTYPE "... is not valid JSON
POST https://app.onlyhelper.com/api/auth/_log 404
Run Code Online (Sandbox Code Playgroud)
我尝试过的
在 Google 和 StackOverflow 上搜索类似问题
将 NEXTAUTH_URL 环境变量设置为实时站点上的生产 url
将 NEXTAUTH_SECRET 设置为某个字符串
确保在会话回调上返回“会话”对象
按照遇到类似问题的人的建议将 next 和 nextauth 降级到某些版本
确保 [...nextauth].ts 位于 /pages/api/auth 文件夹中
确保电子邮件服务器环境变量正确
将本地实例指向生产数据库并成功登录,以确认这不是数据库配置/损坏的数据问题
这很奇怪,因为这曾经工作得很好,而且在本地仍然可以工作。想知道是否是 Vercel 问题?
更新
似乎我所有的 API 路由都返回 404 | 找不到网页。我仍然不知道是什么原因造成的。
预先感谢您的所有帮助!
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |