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

authentication - 这是将 Next.js + NextAuth 与 Django Rest Framework API 连接的正确且安全的方法吗?

我一直在使用 Django Rest Framework 开发具有自定义后端的 Next.js 应用程序,主要关注社交平台(Google、Github 等)的身份验证。这是我想要使用的流程:

  1. 让 NextAuth 为社会认证做繁重的工作。例如,当用户想要使用他/她的 Google 帐户登录时,它会返回一个访问令牌和一个 ID 令牌。
  2. 将 Google 返回的 id 令牌和访问令牌放入 NextAuth 会话对象中。
  3. 在前端,使用会话对象中的这两个令牌向 DRF 后端发出 POST 请求,该后端实质上接受访问令牌和 id 令牌并返回访问令牌和刷新令牌。注意。DRF 后端具有处理社交身份验证的设置dj-rest-authdjango-allauth
  4. DRF 后端以 HTTPOnly cookie 的形式发回令牌。所以,下次我想向 DRF API 发出请求时,cookie 应该随请求一起传递。

这是正确和安全的,还是我在踢自己的脚?

我的上下文代码:

index.tsx

api/auth/[...nextauth].ts

我对会话对象是否足够安全以存储令牌这一事实感到压力。我还想实现一种机制,在访问令牌过期时使用刷新令牌刷新访问令牌。

0 投票
0 回答
699 浏览

next.js - 使用 Apollo Client 和 Next-Auth 从 cookie 中获取令牌

你能帮忙检查一下我的代码,我是否可以从 cookie 中获取访问令牌并通过 apollo 客户端发送它?在我的 Next.js 项目中,我使用 NextAuth 进行身份验证。用户登录后,我在会话中保存用户信息和访问令牌。但我知道我怎样才能得到它并通过 apollo 客户端传递它。

0 投票
2 回答
1846 浏览

reactjs - NextAuth.js - 凭据身份验证,添加重置密码按钮

我正在使用 next/auth 开发登录系统,并通过仅邀请系统实现凭据记录系统。有没有办法将重置密码链接添加到生成的/api/auth/signin页面?

0 投票
2 回答
2407 浏览

next.js - 下一个身份验证凭据

我正在尝试使用next-auth. 我必须使用自定义登录页面,而且我绝对不能让它工作大约一整周。

我有 :

和 :

并且肯定是一个NEXTAUTH_URL=http://localhost:3000in .env.local

如果我继续/profil/authentication/login,我会看到我的表单,当我单击连接时,我总是会出现一些错误,例如:"Failed to fetch",仅此而已,或者:

[next-auth][error][client_fetch_error] (2) ["/api/auth/csrf", TypeError: 无法获取] https://next-auth.js.org/errors#client_fetch_error

即使我尝试删除表单中的所有 csrf 处理并让登录“独自完成”。

我真的被这个库困住了,我很可能会换另一个库,但我想知道我做错了什么?是否有自定义登录页面和在同一登录页面上处理的错误的完整示例。这太基础了,我不明白为什么我不容易找到一个。

0 投票
0 回答
603 浏览

reactjs - 使用 Apple id 登录会返回“invalid_request 无效的 Web 重定向 url”。

我正在尝试在我的 NextJS 项目中将 Login 与 Apple id 集成。对于身份验证,我选择了 package next-auth。因此,在 next-auth 的文档中,它需要以下数据:

我使用此链接为我的帐户创建凭据。

对于clientId我为我的 ServicesID 使用的标识符,现在它看起来像com.test.client. 对于teamId我使用了位于右上角的字符串。对于privateKey我使用我在我的帐户中生成的密钥并下载它。我删除了上面写着 -----BEGIN PRIVATE KEY----- 和 -----END PRIVATE KEY----- 的部分,并确保密钥保持在一行中。keyId我从我的帐户中获得。

我将所有值存储在 .env 变量中。我仔细检查过,问题不在于 .env 变量。

当我尝试使用 Apple id 登录时,它会将我重定向到此错误页面:

当我尝试登录时被重定向到的页面

这是我在 ServicesID 页面中的 URL 列表:

域和子域:

测试网

www.test.com

返回网址

https://test.com

我想问题出在我的重定向网址上,但我不明白它是什么。

0 投票
1 回答
1249 浏览

authentication - 使用 next-auth.js 跳过登录页面,直接转到提供者

我将 Okta 与 next-auth.js 一起使用。由于我只使用 1 个提供程序(我将在 Okta 登录中使用更多提供程序),我可以跳过此页面并直接转到 Okta 登录页面吗?如果是,如何? 在此处输入图像描述

0 投票
1 回答
835 浏览

reactjs - 在 Next.js 上提供静态文件的身份验证?

因此,我为 Next.js 寻找了一些不需要在服务器端进行任何工作的身份验证选项。我的目标是阻止用户在没有密码的情况下进入网站。

我已经使用 NextAuth 设置了一些测试(经过几次其他尝试),显然我可以使用会话和 cookie 阻止页面,但经过几个小时的研究,我仍然找不到如何阻止资产(例如/public 文件夹中的 /image.png)来自未经身份验证的请求。

如果没有自定义服务器,这甚至可能吗?我在这里缺少一些核心理解吗?

提前致谢。

0 投票
0 回答
652 浏览

azure - 使用 nextauth 登录 azure AD

我正在尝试使用 nextauth 使用 azure AD 配置登录。它在本地主机中工作,但在构建或生产中它不起作用。

我得到的错误如下所示。

在此处输入图像描述

这是自定义提供程序:

0 投票
1 回答
439 浏览

mongoose - 为什么 next-auth 给出 TypeError 无法解构“连接”的属性“管理器”,因为它为空?

当我连接到 mongo atlas 时会发生此错误,但是当我使用本地数据库时它工作正常。查看数据库连接图像和终端错误以获取更多信息。

数据库连接.ts

这是我在下面遇到的错误

0 投票
2 回答
4373 浏览

reactjs - 在自定义登录页面上引发错误时下一个身份验证“凭据”重定向

我有一个自定义登录页面,它在signIn()提交表单时又调用该函数。
我只使用“凭据”提供程序。

服务器端,我只是想抛出一个错误,以便我可以在前端处理它。似乎很容易。

我继续收到一条错误消息:
Error: HTTP GET is not supported for /api/auth/login?callbackUrl=http://localhost:4000/login

我被重定向到的网址是:
http://localhost:4000/api/auth/login?callbackUrl=http://localhost:4000/login

这是我的代码: pages/login.js(仅相关代码。其余只是布局。)

页面/api/auth/[...nextauth.js]