Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
MSAL Angular v2 aktualizuje náš obal pro Angular na nejnovější verzi MSAL Common a přináší integrovanou podporu moderních verzí Angularu (9–12) a RxJS (6).
Tato příručka předvede změny potřebné k migraci existující aplikace z @azure/msal-angular verze 1 na verzi 2.
Dokumentaci konkrétně pro MSAL Angular v2 najdete tady.
Instalace
První zásadní změnou v MSAL Angular v2 je, že již nepoužívá základní balíček msal, ale využívá balíček @azure/msal-browser jako partnerskou závislost.
Nejprve odinstalujte všechny předchozí verze knihovny MSAL, které se aktuálně používají.
Chcete-li nainstalovat @azure/msal-browser a @azure/msal-angular:
npm install @azure/msal-browser @azure/msal-angular@latest
Zásadní změny v @azure/msal-browser@2
@azure/msal-browser@2 obsahuje řadu zásadních změn od msal@1.x. Mnohé z nich by měly být abstrahovány mimo vaši aplikaci, ale existuje několik, které budou vyžadovat změny kódu.
MsalModule.forRoot teď přebírá tři argumenty.
Dříve akceptoval @azure/msal-angular dva objekty konfigurace prostřednictvím MsalModule.forRoot(), jeden pro základní knihovnu a jeden pro @azure/msal-angular. Toto bylo změněno tak, aby to přijímalo instanci MSAL a také dva konfigurační objekty specifické pro Angular.
- Prvním argumentem je instance MSAL. To lze poskytnout prostřednictvím továrny, která vytvoří instanci MSAL, nebo předáním instance MSAL spolu s konfigurací.
- Druhý argument je
MsalGuardConfigurationobjekt, který určujeinteractionType, stejně jako volitelnéauthRequesta volitelnéloginFailedRoute. - Třetí argument je
MsalInterceptorConfigurationobjekt, který obsahuje hodnoty prointeractionType,protectedResourceMapa a volitelnéauthRequest.unprotectedResourceMapbyl označen za zastaralý.
Další informace najdete v naší dokumentaci ke konfiguraci a konkrétní dokumentaci pro MsalInterceptor a MsalGuard . Příklady předání těchto konfiguračních objektů najdete také v našich aktualizovaných ukázkách .
Logger
-
loggerse nyní nastavuje prostřednictvím konfigurací pro instanci MSAL v částisystem.loggerOptions, která zahrnujeloggerCallback,piiLoggingEnabledalogLevel, namísto instancelogger. Lzeloggertaké nastavit dynamicky pomocíMsalService.setLogger(). Další informace najdete vlogger documentationa ukázku použití v ukázce.
Změny rozhraní API
- Metody
acquireTokenaloginnyní jako parametry přijímají různé objekty žádosti. Podrobnosti najdete v msal.service.ts . - Události všesměrového vysílání teď generují
EventMessageobjekt místo jen řetězců. Příklad implementace najdete v ukázce Angular . - Aplikace používající metody
Redirectby měly importovatMsalRedirectComponenta inicializovat je spolu sAppComponentv souboru app.component.ts, který bude zpracovávat všechna přesměrování. Aplikace to nemůžou provést, by měly implementovat metoduhandleRedirectObservable(a spustit ji při každém načtení stránky), která zachytí výsledek operací přesměrování. Další podrobnosti najdete v dokumentaci k přesměrování .
Průsečík MSAL
- Další podrobnosti o konfiguraci aktuálního
MsalInterceptora rozdílech mezi verzemi v1 a v2 najdete v dokumentaci k nástroji MsalInterceptor.
MSAL Guard
- Podrobnější informace o konfiguraci aktuálního
MsalGuarda o rozdílech mezi v1 a v2 naleznete v našem dokumentu MsalGuard.
Accounts
- Doporučujeme přihlásit odběr observable
inProgress$a před načtením informací o účtu filtrovat podleInteractionStatus.None. Tím se zajistí, že se všechny interakce dokončily před získáním informací o účtu. Příklad tohoto použití najdete v naší ukázce . - Při získávání účtů doporučujeme používat
getAccountByHomeId()agetAccountByLocalId(), které jsou k dispozici v instanci MSAL.getAccount()je nynígetAccountByUsername(), ale měla by být sekundární volba, protože může být méně spolehlivé a je pouze pro pohodlí. -
getAllAccounts()je také k dispozici v rámci instance MSAL. Další podrobnosti o metodách účtu najdete v dokumentaci@azure/msal-browser. - Kromě toho teď můžete pomocí
getActiveAccount()asetActiveAccount()získat a nastavit aktivní účty. Další informace najdete v nejčastějších dotazech .
Angular 9+ a rxjs@6
MSAL Angular nyní očekává, že vaše aplikace je sestavena pomocí @angular/core@>=9, @angular/common@>=9, rxjs@6. Stejně jako u MSAL Angular v1 rxjs-compat se nevyžaduje.
Steps:
- Nainstalujte novější verze Angular a rxjs:
npm install @angular/core @angular/common rxjs - Odinstalujte
rxjs-compat(za předpokladu, že není potřeba pro jiné knihovny):npm uninstall rxjs-compat
Ukázky
Sestavili jsme základní ukázkové aplikace pro Angular 9, 10, 11 a 12. Tyto ukázky demonstrují základní konfiguraci a využití a budou vylepšeny a přidány postupně.
Seznam ukázek MSAL Angular v2 a předváděných funkcí najdete zde.