问题标签 [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 投票
2 回答
9085 浏览

next.js - 如何使用 next-auth 在 Next.js 中实现凭据授权?

我尝试使用next-auth获取凭据身份验证,但我没有使用它的经验,无论我做什么,我都会收到以下消息:

[next-auth][error][callback_credentials_jwt_error] 仅当启用 JSON Web 令牌时才支持使用凭据登录 https://next-auth.js.org/errors#callback_credentials_jwt_error

这是我的src/pages/api/auth/[...nextauth].js文件。

我不知道我做错了什么。

0 投票
2 回答
888 浏览

express - 如何使用 next-auth 保护 API 和客户端中的路由

我运行一个后端和一个前端,两者都由端口 8080 上的后端和端口 80 上的前端提供服务。

因此,该应用程序可以正常获取这些路线。现在我需要你的帮助。我已经添加了 next-auth 所以在前端我可以

做类似的事情

这可行,但我还没有弄清楚如何保护 API 的路由。我想在前端和后端保护 route1 和 route2。我想当我登录时需要将令牌传递给 API 但我怎样才能让这两个相互交谈

请记住,我分别运行后端和前端,因为我的生产构建在 docker 中,这就是原因。

0 投票
0 回答
524 浏览

javascript - 尝试使用 next-auth 登录时 ECONNREFUSED 127.0.0.1:80

我使用next-auth.js库为 Next.js 我的应用程序创建身份验证系统。在我的本地计算机上一切正常,但在将网站部署到Vercel后,我的登录功能不起作用。

登录页面(/pages/signin)加载正常,我提交凭据并收到如下错误: https://projectname-git-branch.username.now.sh/api/auth/error?error=Error%3A%20connect%20ECONNREFUSED%20127.0.0.1%3A80

我发现许多文章错误即将错误baseURL配置axios,但我axios在代码中到处都有很多请求(例如,我在应用程序加载后从 firebase 获取数据)并且它可以正常工作。

我控制台记录了我设置baseURL属性的环境变量,axios这很好。

我在那里写的关于这个问题的更多信息:#846

我真的不知道该怎么办。我没有得到关于这个错误发生在哪里、哪个文件和行号、我的代码中有什么请求的任何信息。

下面我把我的整个[...nextauth.js]文件和登录表格。也许我应该在那里更好地配置一些东西。

0 投票
2 回答
1669 浏览

reactjs - 如果 Apollo GraphQL 令牌无效或已过期,则 NextAuth.js 注销

尝试访问后端(Apollo GraphQL)并返回 401 因为令牌已过期或无效时,清除 NextAuth.js 会话的最佳方法是什么?

我想过一个errorLinkand signout,但据我所知signout不能在服务器端使用getServerSideProps,而只能在客户端使用。

推荐的方法是什么?有没有其他方法可以实现中间件来处理这种情况?

谢谢

0 投票
2 回答
3570 浏览

javascript - 成功登录后重定向或在下一个身份验证中注册凭据类型

是否有任何示例和/或方法可以在成功登录或注册凭据类型时重定向到私人仪表板next-auth?我找不到任何明确的文档。

我正在考虑在下面添加重定向,但不确定这是否是正确的方法:

0 投票
1 回答
135 浏览

node.js - Mongoose:OverwriteModelError:编译后无法覆盖“用户”模型

我正在使用 Mongoose 管理 MongoDB 服务器,所有其他出现此错误的解决方案都没有帮助。模型没有在其他任何地方定义,我能想到的唯一问题是表/模型已经存在于 MongoDB 服务器上,但除此之外,我以前从未遇到过这个问题。

我目前的代码是这样的:

用户架构(主要作为示例,所有架构都会出现此问题)

我正在尝试做的是从NextAuth获取未正常提供的数据,例如accessTokensession.accessToken不是正确的 accessToken)。

我不知道该怎么做,我会尽我所能获得帮助。谢谢!

0 投票
3 回答
1226 浏览

reactjs - 如何在不退出的情况下更新会话值?

使用NextAuth.js,如何在不注销并再次登录的情况下更新会话对象中的值?

例如,一旦用户登录,我将使用会话中存储的 URL 来显示用户的头像。

我还为用户提供更改他的头像,所以我希望session.user.image使用头像的新路径进行更新和持久化。我将所有数据存储在 MongoDB 中。我怎样才能做到这一点?现在唯一的解决方案是要求用户退出并重新登录,但这听起来对我来说不是一个可以接受的解决方案:)

我的第一个想法是在用户更新他的头像后更新这个会话对象,但我不知道如何做到这一点。

0 投票
1 回答
1988 浏览

javascript - 如何使用凭据提供程序在自定义后端使用 axios 确保身份验证

我目前有现有的 Laravel 后端,它返回 JWT 令牌并使用 data.accessToken = data.access.token 在登录回调下设置它。我还可以通过以下方式检索令牌并发送到私有端点:

但这仅在 React 挂钩中可用,但我需要发送它,并且我在另一个文件中有 axios 调用,代码如下:

如何从这个单独的文件中获取访问令牌并将其作为使用 API 客户端的每个请求的默认标头发送?

对于来自服务器的无效请求,还有什么推荐的方法吗?例如,如果我得到 401,我在哪里可以捕捉到这个并重定向回登录页面?

您要做什么尝试为来自单独库的每个请求发送访问令牌,如果未针对私有端点请求进行身份验证,则重定向到登录页面。

复制导入 axios,在 Next Auth 中使用凭证提供程序和自定义后端返回 JWT 令牌。将 signIn 回调中 JWT 的结果映射到数据,以便可以将其保存在用户会话中以供以后检索。

反馈在文档中似乎缺乏完整的示例,其中自定义后端具有凭据提供程序,具有私有端点处理和检索,为在单独的 API 请求中完成的请求封装访问令牌。最好有端到端的例子,我们可以参考实现处理所有这些场景。

0 投票
0 回答
675 浏览

next.js - 没有默认登录页面的下一个 Auth 电子邮件凭据

是否有使用凭证电子邮件的解决方案 - 来自后端的密码,没有 Next/auth 提供的默认身份验证页面?

我必须使用模态而不是全页身份验证

我遵循文档:“https://next-auth.js.org/providers/credentials”但是当我使用来自 nextAuth 的登录时,它会生成一个登录页面

在此处输入图像描述

0 投票
1 回答
252 浏览

reactjs - 是否可以将 next-auth Provider 包装在 redux Provider 中?

如果我已经在我的 next.js 应用程序中使用了 next-auth,我可以在 _app.js 中以某种方式在它周围添加 redux 吗?

我尝试的是这样的:

这个对吗?它是这样工作的吗?我还需要使用 redux-saga,对整个事情来说都是新的,所以我还处于设置阶段