运行旧Microsoft Graph项目报MSALAuthenticationProviderOptions非构造函数错误求助
错误原因
你引用的Microsoft Graph JavaScript SDK未锁定版本,当前CDN默认拉取的3.x及以上版本已经将MSALAuthenticationProviderOptions、ImplicitMSALAuthenticationProvider两个类从核心包中移除,因此全局MicrosoftGraph对象下不存在对应的构造函数,触发类型错误。
你1.5年前开发时默认拉取的是2.x版本的SDK,这两个类在2.x版本中是内置在核心包内的,因此当时可以正常运行。
解决办法(无需升级现有MSAL 1.3.0版本)
直接锁定Microsoft Graph JavaScript SDK的版本到2.x最终稳定版即可,不需要修改其他任何业务代码:
修改index.html中Graph SDK的CDN引入地址,增加版本号@2.2.1:
<!-- 修改前:无版本号,默认拉取最新版 --> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@microsoft/microsoft-graph-client/lib/graph-js-sdk.js"></script> --> <!-- 修改后:锁定2.2.1版本 --> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@microsoft/microsoft-graph-client@2.2.1/lib/graph-js-sdk.js"></script>
修改后清理浏览器缓存重新加载页面,错误即可消失,原有全部逻辑可正常运行。
可选升级方案(未来需要适配MSAL 2.x时参考)
如果后续你需要升级到MSAL 2.x(msal-browser)使用更安全的授权码流,可使用最新版Graph SDK,同时引入独立的MSAL认证Provider包,调整对应的认证初始化代码即可。
内容的提问来源于stack exchange,提问作者user1063287
相关产品推荐
相关产品推荐

