问题标签 [next-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
877 浏览

reactjs - Nextjs - 从 getServerSideProps 获取受保护的请求

我正在使用下一个 js 应用程序。对于后端,我使用 laravel 和 sanctum autentication。我想使用 laravel sanctum 和 nextjs SPA 应用程序实现凭据身份验证(用户名、密码)。所有这些都与客户端一起工作。但我无法访问 getServerSideProps 中的受保护请求。它需要 crsf 令牌。

页面/login.js

pages/index.js(受保护的路由)

问题:如何用 getServerSideProps 做到这一点?或者如何使用 NextAuth.js 使用这个实现?或者可能需要客户端到服务器之间的桥梁

'/api/users' 路由受保护,需要认证,所以响应 401 未授权

0 投票
0 回答
174 浏览

node.js - [NextAuth]:如何在后端以编程方式登录用户?

我使用了几个提供商,包括凭据提供商(电子邮件和密码) 在某些时候,在应用程序中,用户可以请求“恢复密码”电子邮件,他应该获得一次性链接。在他访问链接(/api/users/quick_link?token=XXX&email)后,我检查令牌是否有效,之后我的目标是登录用户并将他重定向到他的个人资料页面。

我尝试了什么:

  1. 使用 'nextauth/client' 登录功能,这显然不适用于后端
  2. 检查他们如何做'电子邮件'提供者- 开始部分或多或少相同,但它很快开始使用内部功能,我不打算(至少现在)触摸。

我没有尝试过的:使用 REST API。

因为我不确定如何从另一个 api 使用它。只是等待获取?

回顾

简短版本:访问 /api/users/login_me_asap?myemail=xxx 后,我想登录用户并重定向他。

0 投票
3 回答
3899 浏览

next.js - 将 NextJS 部署到 Vercel 失败

我正在尝试将应用程序部署到 Vercel,并在构建时收到此错误

一切似乎在本地运行良好,但是当我尝试将其部署到 Vercel 时,我收到了上述错误消息。你能告诉我如何解决吗?

0 投票
1 回答
670 浏览

reactjs - 如何使用刷新令牌配置 clientMaxAge/keepAlive?(下一个认证)

使用来自 next-auth 的凭据提供程序为我们的用户提供简单的电子邮件/密码登录流程,我正在尝试找出会话选项的最佳组合来处理刷新令牌。

目前,成功登录后,我们的 API 会发回 JWT 和USER_SESSION_LENGTH30 分钟的配置属性。

我已经为clientMaxAgeand设置了 30 分钟的提供程序选项组合keepAlive,并且在 JWT 回调中,检查到期时间是否小于“almostNow”Date.now()调用,如果是,则重新获取新的 JWT 并重置到期。

虽然这似乎有效,但我认为我没有clientMaxAge/keepAlive正确使用。我应该如何正确设置/配置这些值以协同工作?

0 投票
1 回答
1215 浏览

reactjs - Next-Auth:无法读取未定义的属性“适配器”

当我在 vercel.in 开发模式下部署 nextjs 应用程序时,我得到了这个错误,一切正常,但是当我在 vercel 中部署我的应用程序时,我得到了这个错误。

这个错误可能来自下一个身份验证,但我不知道为什么会出现。

我在 [...nextauth].js 中的代码:

当请求 /api/auth/session 和 /api/auth/_log 时会出现此错误

我很高兴有人能帮助我。

0 投票
2 回答
1615 浏览

sqlite - 未使用电子邮件验证创建下一个身份验证会话

我正在使用 nextjs next-auth 创建一个 Web 应用程序,但遇到了问题。当用户单击登录按钮时,他们将被定向到电子邮件表单,这很好,然后当您输入电子邮件时,电子邮件已成功发送,但是当您从电子邮件单击登录时,您将被重定向到主页但仍未登录。控制台我收到此错误:

这是我的 nextauth.js

有什么问题?

0 投票
0 回答
215 浏览

postgresql - 在同一数据库中使用 Prisma ORM 的多个服务的最佳实践?

我正在使用 next-auth 进行身份验证,它处理数据库中的用户、帐户和会话表的身份验证。我还有一个单独的服务器,它连接到同一个数据库并需要访问这些用户(但也做我的应用程序的下一个不需要接触的其他事情)。

我想在这两个都与同一个底层数据库交互的服务上使用 Prisma ORM。保持模式同步的最佳实践是什么?可以手动复制 schema.prisma 文件并迁移并生成 npx prisma 吗?

0 投票
1 回答
1903 浏览

curl - Next-Auth:getSession 返回 null

通过浏览器对以下代码的 API 请求工作正常,即返回{"success":true,"data":{"user": ...}},但使用 cURL 或 REST-Client VS Code 扩展返回 null 即{"success":true,"data":null}。下面是我通过/api/query端点返回会话对象的代码:

我也尝试使用端点获取会话/api/auth/session。端点使用浏览器返回会话,但使用 cURL 返回 null。这是 cURL 请求curl http://localhost:3000/api/auth/session
行为的原因是什么?

PS:我正在使用 Google OAuth 进行身份验证。

0 投票
1 回答
532 浏览

next.js - 如何在 relay-nextjs 中使用 next-auth jwt?

我正在尝试使用next-authwith relay-nextjs。我next-auth按照hasura jwt 示例relay-nextjs和官方文档进行设置。我想在发送到 GraphQL 端点next-auth的 Authorization 标头中传递一个 jwt Bearer 令牌。relay-nextjs

  1. next-auth提供了一种getSession方法。在幕后,这会请求一个服务器端点。

  2. relay-nextjs提供了serverSideProps一个withRelayHoC 的属性。您将页面组件传递给withRelay. 您添加一个函数serverSideProps,它将向页面的中继环境发送一个令牌。

我的问题getSession是 null inside serverSideProps

如果我可以在这里获得令牌,它可以在relay-nextjs. 返回字符串可以正常工作,将其添加到标题中。

next-auth应用页面请求中有一个cookie。我对照调用的端点检查了它getSession。cookie 不匹配。他们会这样做,直到最后一个点之后的这一部分,每个请求都会改变。

我通过调试器运行它,它看起来像在回调relay-nextjs之前执行。next-auth

我现在尝试的一种方法是将next-auth令牌存储在数据库中,然后运行 ​​prisma 查询而不是getSession. 欢迎任何意见。

0 投票
1 回答
6629 浏览

next.js - 如何保护 Next.js next-auth 中的路由?

我正在尝试将身份验证与next-auth应用程序中的库集成。我一直在关注这里给出的官方教程https://github.com/nextauthjs/next-auth-example/。给定示例的问题是,我需要检查每个页面上是否存在需要像这样进行身份验证的会话。

或者像这样用于服务器端检查

这很让人头疼,因为我们需要在每个需要身份验证的页面上手动正确,有没有办法全局检查给定的路由是否是受保护的路由,如果没有登录则重定向,而不是在每个页面上都写这个?