Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az MSAL Angular v2 naprakésszé teszi Angular-wrapperünket az MSAL common legújabb verziójával, és beépített támogatást nyújt az Angular (9–12) és az rxjs (6) modern verzióihoz.
Ez az útmutató bemutatja a meglévő alkalmazások 1-ről @azure/msal-angular v2-be való migrálásához szükséges módosításokat.
A kifejezetten az MSAL Angular v2-hez készült dokumentáció itt található.
Telepítés
Az MSAL Angular v2 első alapvető módosítása az, hogy már nem az alapcsomagot msal használja, hanem @azure/msal-browser csomagolja be a csomagot.
Először távolítsa el a jelenleg használt MSAL korábbi verzióit.
A(z) @azure/msal-browser és @azure/msal-angular telepítéséhez:
npm install @azure/msal-browser @azure/msal-angular@latest
Kompatibilitástörő változások a következőben: @azure/msal-browser@2
@azure/msal-browser@2 számos, a msal@1.x verzióhoz képest kompatibilitást megszakító változtatást tartalmaz. Ezek közül soknak el kell távolodnia az alkalmazástól, de van néhány, amely kódmódosítást igényel.
Az MsalModule.forRoot most három argumentumot vesz fel
Korábban a @azure/msal-angular a MsalModule.forRoot() segítségével két konfigurációs objektumot fogadott el: egyet az alapkönyvtárhoz, egyet pedig a @azure/msal-angular számára. Ezt úgy módosítottuk, hogy egy MSAL-példányt, valamint két Angular-specifikus konfigurációs objektumot fogadjon el.
- Az első argumentum az MSAL-példány. Ez megadható az MSAL-t példányosító gyárként, vagy az MSAL-példány konfigurációkkal együtt történő átadásával.
- A második argumentum egy
MsalGuardConfigurationobjektum, amely megadja ainteractionType-t, valamint egy opcionálisauthRequest-t és egy opcionálisloginFailedRoute-t. - A harmadik argumentum egy
MsalInterceptorConfigurationobjektum, amely ainteractionType, egyprotectedResourceMapés egy opcionálisauthRequestértékeit tartalmazza.unprotectedResourceMaphasználata nem ajánlott.
További információt az MsalInterceptor és az MsalGuardkonfigurációs dokumentumában és konkrét dokumentációiban talál. Frissített mintáinkban példákat is láthat a konfigurációs objektumok átadására.
Logger
- A
loggermost az MSAL-példány konfigurációján keresztül, asystem.loggerOptionsalatt van beállítva, amely egyloggerCallback,piiLoggingEnabledéslogLevelelemet tartalmaz, egyloggerpéldánya helyett. Aloggerbeállítás dinamikusan is beállítható a használatávalMsalService.setLogger().logger documentationTovábbi információkért és használati mintaért tekintse meg a témakört.
API-módosítások
- A
acquireTokenésloginmetódusok mostantól különböző kérésobjektumokat fogadnak paraméterként. Részletekért tekintse meg a msal.service.ts . - A közvetítési események mostantól csak sztringek helyett egy
EventMessageobjektumot bocsátanak ki. A megvalósítás módjára az Angular-mintában talál példát. - A
Redirectmetódusokat használó alkalmazásoknak az app.component.ts fájlban importálniuk kell aMsalRedirectComponentelemet és a bootstrapot aAppComponentmellett, amely az összes átirányítást kezeli. Az alkalmazások nem tudják ezt megtenni, ha implementálják ahandleRedirectObservablemetódust (és minden oldalbetöltésen futtatják), amely rögzíti az átirányítási műveletek eredményét. További részletekért tekintse meg az átirányítási dokumentációt .
MSAL Interceptor
- További részletekért az aktuális
MsalInterceptorkonfigurálásáról, valamint a v1 és a v2 közötti különbségekről tekintse meg a MsalInterceptor-dokumentációt.
MSAL Guard
- Az aktuális és a v1 és a v2 közötti különbségek konfigurálásával kapcsolatos további részletekért tekintse meg
MsalGuard.
Accounts
- Javasoljuk, hogy iratkozzon fel a
inProgress$Observable-ra, és szűrjön a(z)InteractionStatus.Noneértékre, mielőtt lekéri a fiókadatokat. Ez biztosítja, hogy az összes interakció befejeződjön a fiókadatok lekérése előtt. Ebből a használatból példát talál a példánkban . - A fiókok lekérésekor javasoljuk az MSAL-példányon elérhető
getAccountByHomeId()ésgetAccountByLocalId()használatát.getAccount()most márgetAccountByUsername(), de csak másodlagos lehetőségként javasolt, mivel kevésbé megbízható lehet, és kizárólag kényelmi célokat szolgál. -
getAllAccounts()az MSAL-példányban is elérhető. A fiókmódszerekkel kapcsolatos további részletekért tekintse meg a@azure/msal-browser. - Emellett most már lekérheti és beállíthatja az aktív fiókokat a
getActiveAccount()éssetActiveAccount()használatával. További információért tekintse meg a gyakori kérdéseket .
Angular 9+ és rxjs@6
Az MSAL Angular mostantól azt feltételezi, hogy az alkalmazásod a @angular/core@>=9, @angular/common@>=9 és rxjs@6 használatával készült. Az MSAL Angular v1-hez rxjs-compat hasonlóan ez sem kötelező.
Steps:
- Telepítse az Angular és rxjs újabb verzióit:
npm install @angular/core @angular/common rxjs - Távolítsa el a(z)
rxjs-compatelemet (feltéve, hogy más könyvtáraknak nincs rá szükségük):npm uninstall rxjs-compat
Samples
Az Angular 9, 10, 11 és 12 alapszintű mintaalkalmazásokat hoztunk létre. Ezek a minták az alapkonfigurációt és a használatot mutatják be, és fokozatosan fejlesztik és bővítik.
Az MSAL Angular v2-minták és a bemutatott funkciók listáját itt találja.