如何使用“NextAuth.js”从 Azure B2C 检索 JWT 访问令牌

How to retrieve a JWT access token from Azure B2C using `NextAuth.js`

我的基础设施如下:

一切似乎都正常 - 我可以在前端使用已注册的身份提供者对用户进行身份验证,但是...我需要使用来自 Azure B2C 的访问令牌调用后端,以便我的请求得到验证。

管理此访问令牌的正确方法是什么?我找不到任何关于我是否应该自己生成它或者是否有某种机制可以简化这一切的信息?

我想讨论另一个问题 - NextAuth.js 是适合我的用例的库吗?我的意思是,@azure/msal-react 有更多的文档和示例,它专门处理这个问题,所以它是更好的选择吗?

NextAuth.js 是一个很好的库。

您可以将 AzureB2C 为 signed-in 用户提供的 accessToken 放入 NextAuth.js 配置中 jwt 回调中的会话 JWT。

请在此处查看关于此 use-case 的文档:https://next-auth.js.org/configuration/callbacks#jwt-callback 在此处查看另一个示例:https://github.com/nextauthjs/next-auth-refresh-token-example/blob/57f84dbc50f30233d4ee389c7239212858ecae14/pages/api/auth/%5B...nextauth%5D.js#L67

在会话 JWT 中拥有它后,您可以在 Next.js API 路由中使用 getToken() 方法,例如,检索令牌并使用它进行调用,等等