问题标签 [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 回答
25 浏览

redirect - NextAuth.js:转到受保护的页面将直接到登录页面,然后重定向到受保护的页面

您好,我正在使用 NextAuth.js 构建我的 next.js 应用程序。

这里我遇到一个问题,如果我去一个受保护的页面或任何其他/pages/protected需要认证的受保护的页面,那么它将重定向到登录页面pages/auth/signin,成功登录后,我该如何重定向回/pages/protected

0 投票
0 回答
114 浏览

node.js - NextJS 使用 JWT 进行身份验证

我是 NextJS(使用 TS)的新手,我使用 redux(redux/toolkit)实现了它。我也有用于后端的单独项目(身份验证与 JWT 一起使用)。

所以我想要的是在 NextJS 中实现身份验证,我会将令牌存储在 cookie 或 localstorage 中,还将用户数据放在 redux 中。

我还将拥有 facebook/google 身份验证。

我的问题是,我该怎么做?

我尝试使用 next-auth,但我不确定它是否支持自定义登录页面(我想要登录模式)。另外,我想在我的后端注册通过 fb/google 登录的用户。我不确定 next-auth 是否允许这样做,我应该如何实现它?

第二种方法是我让一切都定制。但是在这里我不确定将获取存储的 JWT 的逻辑放在哪里,与后端进行检查,并将其存储到 redux。我在 _app.tsx 内部考虑,但现在我不确定是否应该在 getServerSideProps (所以 nextjs 后端检查我的后端)或 componentDidMount (所以我在客户端这样做)内部完成。

我查找了许多示例,但其中大多数都使用 next-auth,但没有使用自定义后端(我有)。他们利用 NextJS 的后端。

任何帮助将不胜感激。

0 投票
1 回答
425 浏览

reactjs - 带有身份验证会话的 React 应用程序中的 Redux 与 HOC

我在框架 Next.js 中有 React 应用程序(但框架并不重要),并实现了身份验证。

当前应用程序在首次加载后通过 API 调用获取用户会话数据(我正在next-auth为此使用)。这导致加载和会话获取之间存在间隔,这导致用户在整个应用程序中看到加载微调器的间隔很小。

我想通过实施 SSR(服务器端渲染)来缓解这种情况,我可以在其中使用会话数据来补充初始响应。

这可以通过getServerPropsComponent 中的方法在 Next.js 中轻松完成,但问题是我需要在我拥有的每个页面上实现此方法。

这就是为什么我正在寻找一种方法使会话状态在整个应用程序中全局化,以便每个页面(组件)都可以访问此会话数据。

我的主要问题是,如果我应该使用 HOC 包装器来实现getServerProps接收会话数据,或者我应该使用 Redux 存储并通过相同的方法水合这个存储。

我不确定 HOC 是否仍被广泛使用,或者它们现在已被弃用。

我不想getInitialProps在 Next.js 自定义_app.js文件中实现,因为这将禁用静态生成页面的能力,并且会话将在每个页面中可用。我计划该应用程序仅在大约一半的页面中需要此会话数据。

那么我应该使用 HOC 还是为此添加 redux 存储?

0 投票
0 回答
461 浏览

next.js - 在 Next Auth 中扩展 OAuth 登录的用户数据

我试图在我的 index.js 中使用这些数据。我正在使用 promise 来扩展我的数据库用户的信息,如下所示:

在我的索引中,我只是使用模板示例。

我怎样才能name: userLookup.Nickname,从上面访问它,甚至像这样扩展它。

谢谢。只是不知道它在哪里返回或如何访问它。

0 投票
0 回答
63 浏览

javascript - 如何在 NextAuth 的凭据提供程序(或任何其他)中实现基于 IP 的速率限制

我在我的 Next.js 应用程序中使用 NextAuth,但在为凭据提供程序 ( https://next-auth.js.org/providers/credentials ) 实施 IP 速率限制时遇到了麻烦。

从文档中,我找不到在authorize实现此类系统的方法中检索请求对象的方法。

即使我正在使用 ReCAPTCHA,我的应用程序也会收到大量错误尝试,因此我想使用基于 IP 的速率限制器来缓解这种情况。

0 投票
0 回答
25 浏览

node.js - __Secure cookie 未在获取请求中发送

我正在使用 next-auth 在我的前端对用户进行身份验证,它设置了 HTTPOnly 和SecureJWT cookie。
我想使用该 cookie 来验证对我的后端 API 的调用,用户将通过该 API 加载前端的内容。(用户直接从 API 获取数据,而不是通过我的前端。)

现在这一切都可以在 localhost 中正常运行,因为没有为 cookie 设置 Secure 标志。在生产中,虽然 cookie 具有 __Secure- 参数,但不会与获取请求一起发送。

这是 fetch 调用。

如何强制包含安全 cookie?或者有没有更好的方法来解决这个问题?

0 投票
1 回答
1071 浏览

reactjs - NextAuth登录成功时如何返回页面

我想在登录成功时返回特定页面,例如,当用户提供正确的凭据时,他们应该被重定向到特定页面让我们说dashboard.js,而不是仅仅返回index.js

index.js

[...nextauth].js

0 投票
0 回答
352 浏览

reactjs - NextJS _app.js| 警告:无法对未安装的组件执行 React 状态更新

我在 Next.js 项目的浏览器控制台中收到以下警告消息。

警告:无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要解决此问题,请取消 componentWillUnmount 方法中的所有订阅和异步任务。在 ConnectFunction 中的 Index(由 ConnectFunction 创建)中(在 _app.jsx:45)

我的_app.jsx代码如下。有人可以帮我解决这个问题吗?

问题在于下面的代码行 -

如果<NextAuthProvider session={pageProps.session}>从上述代码块中删除,则警告消息消失。

0 投票
0 回答
85 浏览

reactjs - 选项卡之间的 Next-Auth 会话同步

我已经在 Next.js 应用程序上使用 next-auth 实现了身份验证。我在 Google 上使用过 OAuth。signIn 和 signOut 行为按预期工作。但是,当我在另一个应用程序(例如 Gmail)中从 Google 注销时,我的应用程序仍然保持登录状态。

是否可以在应用程序之间同步会话?

0 投票
0 回答
456 浏览

jwt - NextAuth 会话访问令牌错误

我正在尝试使用 Google Provider 实现 NextAuth 以使用 Youtube Data API 发出请求。但是,在使用会话回调时,访问令牌似乎是错误的,因为我无法使用该令牌发出任何请求。使用 JWT 回调时,访问令牌似乎是正确的。有人经历过吗?我想使用会话回调,但没有找到获得 JWT 回调给我的相同访问令牌的方法。

编辑 1:不确定这是否会有所帮助,因为它更多的是关于 NextAuth 的会话访问令牌和 JWT 访问令牌是否不同的一般问题,但这里是回调选项:

这是使用会话访问令牌的响应:

使用 JWT 访问令牌,我得到了正确的结果。