我在 nextjs 应用程序中使用 next auth 进行用户身份验证,但我的端点位于 Nodejs 服务器上(而 next auth 逻辑位于 api/auth/[...nextauth] 文件中)。如何验证从 nextjs 应用程序向我的 Nodejs 服务器发送请求的用户是否已获得授权。
有没有办法将下一个身份验证设置的 jwt 令牌发送到 Node js 后端并进行验证,并查看用户是否经过身份验证?
技术上应该是可行的。例如,您可以通过 Authorization 标头将 NextAuth 创建的 JWT 传递给 Node.JS API,并使用
NEXTAUTH_SECRET
的值对 JWT 进行解码。
const jwt = require("jsonwebtoken");
const decode = jwt.verify(token, "secret");
来自 NextAuth 的 JWT 令牌已加密。如果您尝试对其进行解码,则会遇到故障。访问 JWT 令牌的详细信息
import { getToken } from 'next-auth/jwt';
const session = getToken({ req, secret: process.env.AUTH_SECRET });