在没有 next-auth 的情况下在 Next.js 中使用自定义后端进行身份验证:一种实用方法

Con*_*ono 14 javascript express next.js next-auth

我正在使用 Next.js 13 进行开发
,并且没有服务器端渲染 (SSR) 的经验。

我的问题是什么

我有一个基于 Express.js 的自定义后端 API。

该后端服务已经实现了身份验证功能,例如登录、注册、注销,甚至使用 Google 进行社交登录。

我打算继续使用现有的后端身份验证服务,而不是采用 Next.js 的next-auth身份验证系统。
我做出这个决定是有原因的:

  1. Next.js 可用于全栈应用程序,但对我来说感觉更像是前端。

  2. 由于我的后端服务已经建立,我想重用它的身份验证功能。

当前逻辑在我的前端中,
cookie - 我正在从服务器获取(next.js)检索cookie以验证用户的登录状态。

到目前为止它工作得很好(作为初学者的角度)
我很好奇是否有其他方法可以使用我的后端 API 来类似地处理身份验证,而不依赖于next-auth.
我想探索替代解决方案并检查这​​种方法是否是有效的策略。

在前端

从服务器上获取数据的cookie有jwt,我解码以将用户名放在导航栏上

小智 0

我不确定我是否理解你的问题,但据我了解,是的,你可以,

身份验证在导航器中基本上是很好的cookie,例如我在nodejs/express js中创建了一个带有后端的网站,当用户登录时它创建一个会话(在数据库中我的是mongobd)这个会话包含一个UUID,这个UUID被发送发送给客户端并作为“会话”存储在 cookie 中

当我想做一些需要身份验证的事情时,我只需在标头请求中实现 cookie,然后在后面检查此 cookie 是否存在于会话中,如果是,那么我正确执行了预期的操作,否则我返回带有“unauth”的 403 代码“消息,在前面,如果请求的响应是 403,那么我会显示一条消息,说明未经过身份验证,如果您现在想要客户端在页面加载结束时登录,请创建一个简单的 api 路由,用于名为“user”的示例,当您使用令牌请求该令牌但令牌无效时,它返回 403 else 200