问题标签 [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.
reactjs - Nextjs - 从 getServerSideProps 获取受保护的请求
我正在使用下一个 js 应用程序。对于后端,我使用 laravel 和 sanctum autentication。我想使用 laravel sanctum 和 nextjs SPA 应用程序实现凭据身份验证(用户名、密码)。所有这些都与客户端一起工作。但我无法访问 getServerSideProps 中的受保护请求。它需要 crsf 令牌。
页面/login.js
pages/index.js(受保护的路由)
问题:如何用 getServerSideProps 做到这一点?或者如何使用 NextAuth.js 使用这个实现?或者可能需要客户端到服务器之间的桥梁
'/api/users' 路由受保护,需要认证,所以响应 401 未授权
node.js - [NextAuth]:如何在后端以编程方式登录用户?
我使用了几个提供商,包括凭据提供商(电子邮件和密码) 在某些时候,在应用程序中,用户可以请求“恢复密码”电子邮件,他应该获得一次性链接。在他访问链接(/api/users/quick_link?token=XXX&email)后,我检查令牌是否有效,之后我的目标是登录用户并将他重定向到他的个人资料页面。
我尝试了什么:
- 使用 'nextauth/client' 登录功能,这显然不适用于后端
- 检查他们如何做'电子邮件'提供者- 开始部分或多或少相同,但它很快开始使用内部功能,我不打算(至少现在)触摸。
我没有尝试过的:使用 REST API。
因为我不确定如何从另一个 api 使用它。只是等待获取?
回顾
简短版本:访问 /api/users/login_me_asap?myemail=xxx 后,我想登录用户并重定向他。
next.js - 将 NextJS 部署到 Vercel 失败
我正在尝试将应用程序部署到 Vercel,并在构建时收到此错误
一切似乎在本地运行良好,但是当我尝试将其部署到 Vercel 时,我收到了上述错误消息。你能告诉我如何解决吗?
reactjs - 如何使用刷新令牌配置 clientMaxAge/keepAlive?(下一个认证)
使用来自 next-auth 的凭据提供程序为我们的用户提供简单的电子邮件/密码登录流程,我正在尝试找出会话选项的最佳组合来处理刷新令牌。
目前,成功登录后,我们的 API 会发回 JWT 和USER_SESSION_LENGTH
30 分钟的配置属性。
我已经为clientMaxAge
and设置了 30 分钟的提供程序选项组合keepAlive
,并且在 JWT 回调中,检查到期时间是否小于“almostNow”Date.now()
调用,如果是,则重新获取新的 JWT 并重置到期。
虽然这似乎有效,但我认为我没有clientMaxAge/keepAlive
正确使用。我应该如何正确设置/配置这些值以协同工作?
reactjs - Next-Auth:无法读取未定义的属性“适配器”
当我在 vercel.in 开发模式下部署 nextjs 应用程序时,我得到了这个错误,一切正常,但是当我在 vercel 中部署我的应用程序时,我得到了这个错误。
这个错误可能来自下一个身份验证,但我不知道为什么会出现。
我在 [...nextauth].js 中的代码:
当请求 /api/auth/session 和 /api/auth/_log 时会出现此错误
我很高兴有人能帮助我。
sqlite - 未使用电子邮件验证创建下一个身份验证会话
我正在使用 nextjs next-auth 创建一个 Web 应用程序,但遇到了问题。当用户单击登录按钮时,他们将被定向到电子邮件表单,这很好,然后当您输入电子邮件时,电子邮件已成功发送,但是当您从电子邮件单击登录时,您将被重定向到主页但仍未登录。控制台我收到此错误:
这是我的 nextauth.js
有什么问题?
postgresql - 在同一数据库中使用 Prisma ORM 的多个服务的最佳实践?
我正在使用 next-auth 进行身份验证,它处理数据库中的用户、帐户和会话表的身份验证。我还有一个单独的服务器,它连接到同一个数据库并需要访问这些用户(但也做我的应用程序的下一个不需要接触的其他事情)。
我想在这两个都与同一个底层数据库交互的服务上使用 Prisma ORM。保持模式同步的最佳实践是什么?可以手动复制 schema.prisma 文件并迁移并生成 npx prisma 吗?
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 进行身份验证。
next.js - 如何在 relay-nextjs 中使用 next-auth jwt?
我正在尝试使用next-auth
with relay-nextjs
。我next-auth
按照hasura jwt 示例relay-nextjs
和官方文档进行设置。我想在发送到 GraphQL 端点next-auth
的 Authorization 标头中传递一个 jwt Bearer 令牌。relay-nextjs
relay-nextjs
提供了serverSideProps
一个withRelay
HoC 的属性。您将页面组件传递给withRelay
. 您添加一个函数serverSideProps
,它将向页面的中继环境发送一个令牌。
我的问题getSession
是 null inside serverSideProps
:
如果我可以在这里获得令牌,它可以在relay-nextjs
. 返回字符串可以正常工作,将其添加到标题中。
next-auth
应用页面请求中有一个cookie。我对照调用的端点检查了它getSession
。cookie 不匹配。他们会这样做,直到最后一个点之后的这一部分,每个请求都会改变。
我通过调试器运行它,它看起来像在回调relay-nextjs
之前执行。next-auth
我现在尝试的一种方法是将next-auth
令牌存储在数据库中,然后运行 prisma 查询而不是getSession
. 欢迎任何意见。
next.js - 如何保护 Next.js next-auth 中的路由?
我正在尝试将身份验证与next-auth
应用程序中的库集成。我一直在关注这里给出的官方教程https://github.com/nextauthjs/next-auth-example/。给定示例的问题是,我需要检查每个页面上是否存在需要像这样进行身份验证的会话。
或者像这样用于服务器端检查
这很让人头疼,因为我们需要在每个需要身份验证的页面上手动正确,有没有办法全局检查给定的路由是否是受保护的路由,如果没有登录则重定向,而不是在每个页面上都写这个?