Ukládání ověřovacího tokenu do mezipaměti

Tento článek ukazuje, jak uložit ověřovací token do mezipaměti, aby se zlepšil výkon vaší aplikace.

Použití ASP.NET

Importujte Microsoft.Identity.Client balíček NuGet, který se používá k získání tokenu. Podrobnosti najdete v tématu Instalace balíčku NuGet klienta identity.

Vytvořte vlastnost důvěrné klientské aplikace.

private IConfidentialClientApplication _confidentialClientApplication;
private IConfidentialClientApplication ConfidentialClientApplication
{
    get {
        if (_confidentialClientApplication == null) {
            _confidentialClientApplication = ConfidentialClientApplicationBuilder.Create(ClientId)
            .WithClientSecret(ClientSecret)
            .WithAuthority($"https://login.windows.net/{TenantId}")
            .Build();
        }

        return _confidentialClientApplication;
    }
}

Dále pomocí následujícího kódu získejte AuthenticationResultověřovací hodnoty, které jste získali při vytváření prostředku Asistivní čtečka.

Důležité

Balíček NuGet Microsoft.IdentityModel.Clients.ActiveDirectory a Knihovna ADAL (Azure AD Authentication Library) jsou zastaralé. Od 30. června 2020 nebyly přidány žádné nové funkce. Důrazně doporučujeme upgradovat. Další informace najdete v průvodci migrací.

public async Task<string> GetTokenAsync()
{
    const string resource = "https://cognitiveservices.azure.com/";

    var authResult = await ConfidentialClientApplication.AcquireTokenForClient(
        new[] { $"{resource}/.default" })
        .ExecuteAsync()
        .ConfigureAwait(false);

    return authResult.AccessToken;
}

Objekt AuthenticationResultAccessToken vlastnost, což je skutečný token, který použijete při spuštění Asistivní čtečka pomocí sady SDK. Má také ExpiresOn vlastnost, která označuje, kdy platnost tokenu vyprší. Před spuštěním Asistivní čtečka můžete zkontrolovat, jestli platnost tokenu vypršela, a získat nový token jenom v případě, že vypršela jeho platnost.

Použití Node.JS

Přidejte do projektu balíček npm požadavku . Pomocí následujícího kódu získejte token pomocí ověřovacích hodnot, které jste získali při vytváření prostředku Asistivní čtečka.

router.get('/token', function(req, res) {
    request.post(
        {
            headers: { 'content-type': 'application/x-www-form-urlencoded' },
            url: `https://login.windows.net/${TENANT_ID}/oauth2/token`,
            form: {
                grant_type: 'client_credentials',
                client_id: CLIENT_ID,
                client_secret: CLIENT_SECRET,
                resource: 'https://cognitiveservices.azure.com/'
            }
        },
        function(err, resp, json) {
            const result = JSON.parse(json);
            return res.send({
                access_token: result.access_token,
                expires_on: result.expires_on
            });
        }
    );
});

Vlastnost expires_on je datum a čas vypršení platnosti tokenu vyjádřené počtem sekund od 1. ledna 1970 UTC. Pomocí této hodnoty určete, jestli platnost tokenu vypršela před pokusem o získání nového tokenu.

async function getToken() {
    if (Date.now() / 1000 > CREDENTIALS.expires_on) {
        CREDENTIALS = await refreshCredentials();
    }
    return CREDENTIALS.access_token;
}

Další krok