当前位置: 首页 > 知识库问答 >
问题:

NextJS getServerSideProps与自定义身份验证服务(REST API)

林运浩
2023-03-14

我正在尝试让我自己的身份验证服务与我的nextJS应用程序一起工作。我自己的身份验证服务是一个简单的rest api,在输入正确的凭据时返回JWT访问令牌和JWT刷新令牌。

目前,我正在将JWT刷新令牌设置为httpOnly cookie,并将JWT访问令牌设置为我的nextjs应用程序中的状态变量(内存中)。

我被困在以下几点:

>

如何将此访问令牌传递给getServerSideProps

我想将存储在内存中的访问令牌传递给getServerSideProps,但不幸的是,我无法让它工作。或者至少我不知道怎么做。

我是否也必须将JWT访问令牌作为httpOnly cookie?然后我可以在getServerSideProps中检索访问令牌cookie。

但是,这种方法容易受到CSRF的攻击,正如这个问题所指出的:在客户端的哪里存储刷新令牌?

有没有可能用两个httpOnly Cookie(一个用于刷新,一个用于访问令牌)来确保解决方案的安全?

将Cookie设置为httpOnly和samesite strict安全吗?并将刷新令牌cookie的路径设置为/refresh token only?因此,刷新令牌cookie只发送到/refresh-token,而不是发送到其他任何地方。

我已经看到那里有next-auth模块,我可以在服务器端使用get会话功能,但是因为我有自己的身份验证服务来处理所有令牌管理,所以我不确定用next-auth连接我自己的身份验证系统是否是一个好主意,甚至是可能的。

共有1个答案

桓深
2023-03-14

根据您自己的身份验证系统的工作方式,如果它遵循oauth/openid connect标准,您只需在下一次身份验证中使用自定义oauth提供程序即可。

否则,您可以使用他们的凭据提供程序,这允许进行更多定制。

 类似资料:
  • 问题内容: 这是我的情况: 一个Web应用程序对许多应用程序执行某种SSO 登录的用户,而不是单击链接,该应用就会向正确的应用发布包含用户信息(名称,pwd [无用],角色)的帖子 我正在其中一个应用程序上实现SpringSecurity以从其功能中受益(会话中的权限,其类提供的方法等) 因此,我需要开发一个 自定义过滤器 -我猜想-能够从请求中检索用户信息,通过自定义 DetailsUserSe

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 问题内容: 我可以使用Google帐户在AppEngine中对用户进行身份验证的方式非常好。 但是,我需要使用 自定义的身份验证登录系统 。 我将有一个AppUsers表,其中包含用户名和加密密码。 我阅读了有关gae会话的内容,但在启动应用安全性方面需要帮助。 如何跟踪经过身份验证的用户会话?设置cookie? 初学者。 问题答案: 您可以使用cookie来做到这一点……其实并不难。您可以使用C

  • 我在spring MVC项目中实现了一个自定义身份验证提供程序。在我自己的重载authenticate()方法中,我实现了自己的身份验证,其中我构造了自己的UserPasswordAuthenticationToken()并返回对象。 现在,上述对象“UserPasswordAuthentictionToken”中的用户ID被匿名化,密码为null,权限设置为授予该用户的权限。 问题: 这是否会导

  • Postman上有没有办法在执行请求A之前预先执行请求B? 上下文:我创建了一个Symfony应用程序来管理一组web服务。大多数路由只有在用户完全通过身份验证后才能被调用(对于熟悉框架的人使用form_login和防火墙) 因此,我必须先打电话: 邮政 /login 用户名 密码 在能够呼叫之前 获取/某些_安全_路线 (返回 JSON 响应) 当我在Postman构建器中连续手动调用路由时,这