英文:
ERR_SSL_PROTOCOL_ERROR using NextAuth + Prisma in localhost
问题
我有一个使用Next.js 13和MySQL数据库的应用程序,并正在通过NextAuth添加身份验证。我正在使用prisma适配器将其用作我的ORM。
我已按照指南中详细说明的步骤进行了配置(https://authjs.dev/reference/adapter/prisma)。
当我点击默认NextAuth页面上的“使用凭据登录”按钮时,我被重定向到“https://localhost:3000/api/auth/callback/credentials”,但显示了以下错误:ERR_SSL_PROTOCOL_ERROR
此站点无法提供安全连接
。
在退出页面上点击“退出”时也发生同样的情况。
我尝试使用环境变量NODE_TLS_REJECT_UNAUTHORIZED=0
来禁用证书验证,这是我在这个答案中看到的:https://stackoverflow.com/a/58003959/11909334。
还尝试在Chrome浏览器中忽略SSL错误:“由于您正在用于开发目的的本地主机上运行应用程序,因此您可以简单地忽略SSL错误。大多数现代浏览器提供了忽略错误的选项。例如,在Chrome中,您可以点击“高级”,然后选择“继续前往localhost(不安全)”。”
还尝试了这个解决方案:https://github.com/prisma/prisma/discussions/19400#discussion-5225423。
并尝试了其他浏览器,如Microsoft Edge。
我发现有人遇到了相同的错误:https://github.com/prisma/prisma/discussions/19494#discussion-5243149。
英文:
I have a Next.js 13 app with a MySQL database and I am adding authentication via NextAuth. I am using the prisma adapter to use it as my ORM.
I have configured all as it is detailed in the guide (https://authjs.dev/reference/adapter/prisma).
When I click the "Sign in with Credentials" button from the default NextAuth page I am redirected to "https://localhost:3000/api/auth/callback/credentials" but it shows this error ERR_SSL_PROTOCOL_ERROR
This Site Can’t Provide a Secure Connection
.
The same happens when I click "Sign Out" in the signout page.
I tried disabling certificate verification with the env variable NODE_TLS_REJECT_UNAUTHORIZED=0
I have seen in this answer https://stackoverflow.com/a/58003959/11909334 .
Also tried to ignore the SSL error in chrome: "Since you are running your application on localhost for development purposes, you can simply ignore the SSL error. Most modern browsers provide an option to proceed despite the error. For example, in Chrome, you can click on "Advanced" and then select "Proceed to localhost (unsafe)"."
Also tried this solution https://github.com/prisma/prisma/discussions/19400#discussion-5225423 .
And tried other browsers like Microsoft Edge.
I found this person having the same error https://github.com/prisma/prisma/discussions/19494#discussion-5243149
答案1
得分: 3
最终,在经过多小时的搜索后,我找到了错误... 我将我的NEXTAUTH_URL定义为https://localhost:3000
,而不是HTTP。
解决方案只需在.env文件中将https://localhost:3000
替换为http://localhost:3000
。
英文:
Finally I found the error after a lot of hours of searching... I had my NEXTAUTH_URL defined as https://localhost:3000
with HTTPS instead of HTTP.
The solution consists only in replacing https://localhost:3000
with http://localhost:3000
in the .env file.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论