如何使用“NextAuth.js”从 Azure B2C 检索 JWT 访问令牌
How to retrieve a JWT access token from Azure B2C using `NextAuth.js`
我的基础设施如下:
- 我有一个使用 Azure B2C 身份验证(分别通过 JWT 令牌)的后端 Web API
- 我在 Next.js 上编写了一个前端应用程序,它使用 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()
方法,例如,检索令牌并使用它进行调用,等等
我的基础设施如下:
- 我有一个使用 Azure B2C 身份验证(分别通过 JWT 令牌)的后端 Web API
- 我在 Next.js 上编写了一个前端应用程序,它使用 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()
方法,例如,检索令牌并使用它进行调用,等等