MSAL v2.x'ten MSAL v3.x'e geçiş

MSAL'yi yeni kullanmaya başladıysanız buradan başlamalısınız.

MSAL v1.x'ten geliyorsanız, önce bu kılavuzu denetleerek MSAL v2.x sürümüne geçmeniz ve sonraki adımları izlemeniz gerekir.

MSAL v2.x'ten geliyorsanız, kodunuzu MSAL v3.x kullanacak şekilde güncelleştirmek için bu kılavuzu izleyebilirsiniz.

Kritik değişiklikler

Uygulama örneği oluşturma

MSAL v2.x'te aşağıdaki gibi bir uygulama örneği oluşturdunuz:

import { PublicClientApplication } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        clientId: 'your_client_id'
    }
};

const msalInstance = new PublicClientApplication(msalConfig);

MSAL v3.x'te, uygulama nesnesini de başlatmanız gerekir. Kullanımınıza sunulan çeşitli seçenekler vardır:

Seçenek 1

Bir PublicClientApplication nesnenin örneğini oluşturup daha sonra başlatın. initialize İşlev zaman uyumsuzdur ve diğer MSAL.js API'leri çağırmadan önce çözümlenmelidir.

import { PublicClientApplication } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        clientId: 'your_client_id'
    }
};

const msalInstance = new PublicClientApplication(msalConfig);
await msalInstance.initialize();

Seçenek 2

Başlatılmış bir PublicClientApplication nesnesi döndüren createPublicClientApplication statik yöntemini çağırın. Bu işlevin zaman uyumsuz olduğunu unutmayın.

import { PublicClientApplication } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        clientId: 'your_client_id'
    }
};

const msalInstance = await PublicClientApplication.createPublicClientApplication(msalConfig);

Talep tabanlı önbelleğe alma

MSAL v2.x'te, bir isteğe talep eklemek, istenen talep dizesinin varsayılan olarak belirteç önbellek anahtarına eklenmesine neden olur. Bu, MSAL 2.x'in varsayılan olarak taleplere göre belirteçleri önbelleğe aldığı ve eşleştirdiği anlamına gelir. MSAL v3.x'te bu davranış artık varsayılan değildir. MSAL v3.x varsayılan davranışı, belirtecin daha önce önbelleğe alınmış olmasına ve hala geçerli olmasına bakılmaksızın talepler istendiği her durumda bir belirteci yenilemek için ağa gitmektir. Ardından, ağa erişildikten sonra alınan belirteç, daha sonra claim içermeyen sessiz bir istek yürütülürse önbellekteki belirtecin üzerine yazılır. MSAL v3.x'te MSAL v2.x ile aynı davranışı sürdürmek üzere talep tabanlı önbelleğe almayı etkinleştirmek için, geliştiricilerin cacheOptions.claimsBasedCachingEnabled İstemci Uygulaması yapılandırma nesnesinde true olarak ayarlanmış yapılandırma bayrağını kullanması gerekir:

const msalConfig = {
    auth: {
        ...
    },
    ...
    cache: {
        claimsBasedCachingEnabled: true
    }
}

const msalInstance = new msal.PublicClientApplication(msalConfig);
await msalInstance.initialize();

Diğer tüm API'ler MSAL v2.x ile geriye dönük olarak uyumludur. MSAL v3.0'ın çalışan bir örneğini görmek için varsayılan örneğe göz atmak önerilir.

Kripto

MSAL v3.x, IE11 yerel şifreleme window.msCrypto ve Microsoft Research JavaScript Şifreleme Kitaplığı (MSR şifrelemesi) window.msrCrypto desteğini sonlandırarak tarayıcının yerel şifreleme API’sini window.crypto kullanır. MSR şifrelemesi için kullanılan şifreleme seçenekleri config.system.cryptoOptions de artık desteklenmiyor.

Önemli değişiklikler

Tarayıcı desteği

MSAL.js artık aşağıdaki tarayıcıları desteklemez:

  • IE 11
  • Edge (Klasik)

Paket bağımlılıkları

TypeScript sürümü 3.8.3 sürümünden 4.9.5 sürümüne yükseltildi.

Derleyici seçenekleri

Modül/hedef sürümleri sırasıyla es6/es5 sürümünden es2020/es2020 sürümüne yükseltildi.

CDN

MSAL.js artık bir CDN üzerinde barındırılmıyor. Daha fazla ayrıntı için bu belgeyi gözden geçirin.