MSAL Angular v3 使我们的 Angular 包装器与最新版本的 MSAL Browser 保持同步,并开箱即用地支持 Angular 15、16、17、18 和 RxJS 7。
本指南将演示将现有应用程序从 @azure/msal-angular v2 迁移到 v3 所需的更改。
如果要从 @azure/msal-angular v1 迁移,请参阅 v1-v2 迁移指南 ,首先迁移到 MSAL v2。
另请参阅 MSAL 浏览器迁移文档 ,了解浏览器支持和其他关键更改。
@azure/msal-angular@3 中的重大更改
初始 化
使用重定向的应用程序
MSAL v3.x 现在需要初始化应用程序对象。 初始化已内置于 MsalRedirectComponenthandleRedirectObservable API 中,并且已实现重定向策略的应用程序无需进行更改。 如果应用程序正在使用独立组件,可能需要进行其他更改。
有关在应用程序中处理重定向的详细信息,请参阅 重定向指南 。
使用弹出窗口的应用程序
由于初始化内置于 MsalRedirectComponent 和 handleRedirectObservable 中,因此仅使用弹出窗口的应用程序也必须引导启动 MsalRedirectComponent,或手动调用一次 handleRedirectObservable 来初始化应用程序对象。
有关设置详细信息 ,请参阅重定向指南 。
allowNativeBroker 标志
现在,该 allowNativeBroker 标志在配置中默认处于打开状态。 如果你使用的是 B2C 颁发机构,可以如下关闭它:
export function MSALInstanceFactory(): IPublicClientApplication {
return new PublicClientApplication({
auth: {
...
},
cache: {
...
},
system: {
allowNativeBroker: false, // Disables native brokering support
}
});
}
Angular 15、16、17、18 和 rxjs@7
MSAL Angular 现在要求你的应用程序使用以下技术构建:
-
@angular/core@15或@angular/core@16或@angular/core@17或@angular/core@18 -
@angular/common@15或@angular/common@16或@angular/common@17或@angular/common@18 rxjs@7
由于此更改,MSAL Angular v3 与早期版本的 Angular 和 RxJS 不兼容,可能需要更新应用程序。 请按照 Angular 更新指南 将应用程序更新到 Angular 15、16、17 或 18。
与 MSAL Angular v2 一样, rxjs-compat 不需要。
Samples
现在提供了以下开发人员示例:
- Angular 15 示例
- Angular 16 示例
- 使用 B2C 的 Angular 16 示例
- 使用 Angular 独立组件的 Angular 16 示例
- Angular 17 独立示例
- Angular 18 独立示例
这些示例演示了基本配置和用法,并可以逐步改进并添加到其中。
有关 MSAL Angular v3 示例和演示的功能的列表,请参阅 此处 。