You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于AD B2C魔法链接的id_token流程及SPA集成疑问

问题解答

一、会话处理

  • AD B2C会负责自身的认证会话管理:魔法链接登录属于AD B2C的内置认证流程,用户点击链接后,AD B2C会验证链接有效性、完成身份校验,之后签发id_token/access_token并跳转回你的应用。
  • 前端应用的会话由你基于angular-oauth2-oidc维护:当AD B2C跳转回应用后,angular-oauth2-oidc会自动捕获并解析id_token,你可以通过库提供的方法(比如hasValidIdToken())判断用户登录状态,将用户信息存储在前端(内存或localStorage),以此维护前端会话状态。无需自行从零构建会话系统,依赖AD B2C的认证结果和前端库的会话能力即可。

二、id_token访问应用的支持

angular-oauth2-oidc

  • 完全支持用id_token实现前端身份校验:魔法链接跳转后,库会自动处理id_token,你可以通过oauthService.getIdToken()获取该token,结合自定义路由守卫检查id_token的有效性,以此控制前端页面的访问权限。
  • 注意:你的代码中使用了NullValidationHandler,这会关闭token合法性校验,生产环境建议替换为JwksValidationHandler,确保id_token由AD B2C合法签发且未过期。
  • 但id_token不能用于访问后端API,后端API认证需使用access_token。魔法链接流程中如果配置了对应scope,AD B2C也会签发access_token,你可以通过oauthService.getAccessToken()获取并在请求后端时携带。

MSAL(@azure/msal-angular)

  • 同样支持基于id_token的前端身份校验:MSAL会自动处理魔法链接的回调,解析id_token并维护用户会话,你可以通过内置的MsalGuard保护路由,也可以通过MsalService获取用户信息。
  • 与angular-oauth2-oidc一致,id_token仅用于前端身份断言,访问后端API仍需使用access_token,MSAL会自动管理access_token的获取和刷新。

内容的提问来源于stack exchange,提问作者user14013917

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:45:36