问题标签 [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.
authentication - 这是将 Next.js + NextAuth 与 Django Rest Framework API 连接的正确且安全的方法吗?
我一直在使用 Django Rest Framework 开发具有自定义后端的 Next.js 应用程序,主要关注社交平台(Google、Github 等)的身份验证。这是我想要使用的流程:
- 让 NextAuth 为社会认证做繁重的工作。例如,当用户想要使用他/她的 Google 帐户登录时,它会返回一个访问令牌和一个 ID 令牌。
- 将 Google 返回的 id 令牌和访问令牌放入 NextAuth 会话对象中。
- 在前端,使用会话对象中的这两个令牌向 DRF 后端发出 POST 请求,该后端实质上接受访问令牌和 id 令牌并返回访问令牌和刷新令牌。注意。DRF 后端具有处理社交身份验证的设置
dj-rest-auth
。django-allauth
- DRF 后端以 HTTPOnly cookie 的形式发回令牌。所以,下次我想向 DRF API 发出请求时,cookie 应该随请求一起传递。
这是正确和安全的,还是我在踢自己的脚?
我的上下文代码:
index.tsx
api/auth/[...nextauth].ts
我对会话对象是否足够安全以存储令牌这一事实感到压力。我还想实现一种机制,在访问令牌过期时使用刷新令牌刷新访问令牌。
next.js - 使用 Apollo Client 和 Next-Auth 从 cookie 中获取令牌
你能帮忙检查一下我的代码,我是否可以从 cookie 中获取访问令牌并通过 apollo 客户端发送它?在我的 Next.js 项目中,我使用 NextAuth 进行身份验证。用户登录后,我在会话中保存用户信息和访问令牌。但我知道我怎样才能得到它并通过 apollo 客户端传递它。
reactjs - NextAuth.js - 凭据身份验证,添加重置密码按钮
我正在使用 next/auth 开发登录系统,并通过仅邀请系统实现凭据记录系统。有没有办法将重置密码链接添加到生成的/api/auth/signin
页面?
next.js - 下一个身份验证凭据
我正在尝试使用next-auth
. 我必须使用自定义登录页面,而且我绝对不能让它工作大约一整周。
我有 :
和 :
并且肯定是一个NEXTAUTH_URL=http://localhost:3000
in .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 处理并让登录“独自完成”。
我真的被这个库困住了,我很可能会换另一个库,但我想知道我做错了什么?是否有自定义登录页面和在同一登录页面上处理的错误的完整示例。这太基础了,我不明白为什么我不容易找到一个。
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 列表:
域和子域:
测试网
返回网址
我想问题出在我的重定向网址上,但我不明白它是什么。
reactjs - 在 Next.js 上提供静态文件的身份验证?
因此,我为 Next.js 寻找了一些不需要在服务器端进行任何工作的身份验证选项。我的目标是阻止用户在没有密码的情况下进入网站。
我已经使用 NextAuth 设置了一些测试(经过几次其他尝试),显然我可以使用会话和 cookie 阻止页面,但经过几个小时的研究,我仍然找不到如何阻止资产(例如/public 文件夹中的 /image.png)来自未经身份验证的请求。
如果没有自定义服务器,这甚至可能吗?我在这里缺少一些核心理解吗?
提前致谢。
mongoose - 为什么 next-auth 给出 TypeError 无法解构“连接”的属性“管理器”,因为它为空?
当我连接到 mongo atlas 时会发生此错误,但是当我使用本地数据库时它工作正常。查看数据库连接图像和终端错误以获取更多信息。
数据库连接.ts
这是我在下面遇到的错误
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]