Share via


Het verificatietoken in de cache opslaan

In dit artikel wordt gedemonstreert hoe u het verificatietoken in de cache kunt opslaan om de prestaties van uw toepassing te verbeteren.

ASP.NET gebruiken

Importeer het Microsoft.Identity.Client NuGet-pakket, dat wordt gebruikt om een token te verkrijgen. Zie Het NuGet-pakket Identity Client installeren voor meer informatie.

Maak een vertrouwelijke clienttoepassingseigenschap.

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;
    }
}

Gebruik vervolgens de volgende code om een AuthenticationResultte verkrijgen, met behulp van de verificatiewaarden die u hebt verkregen toen u de Insluitende lezer-resource maakte.

Belangrijk

Het Microsoft.IdentityModel.Clients.ActiveDirectory NuGet-pakket en de Azure AD Authentication Library (ADAL) zijn afgeschaft. Er zijn sinds 30 juni 2020 geen nieuwe functies toegevoegd. We raden u ten zeere aan om een upgrade uit te voeren. Zie de migratiehandleiding voor meer informatie.

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;
}

Het AuthenticationResult object heeft een AccessToken eigenschap, het werkelijke token dat u gebruikt bij het starten van de Insluitende lezer met behulp van de SDK. Het heeft ook een ExpiresOn eigenschap die aangeeft wanneer het token verloopt. Voordat u de Insluitende lezer start, kunt u controleren of het token is verlopen en alleen een nieuw token verkrijgen als het is verlopen.

Node.JS gebruiken

Voeg het npm-aanvraagpakket toe aan uw project. Gebruik de volgende code om een token te verkrijgen met behulp van de verificatiewaarden die u hebt verkregen bij het maken van de Insluitende lezer-resource.

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
            });
        }
    );
});

De expires_on eigenschap is de datum en tijd waarop het token verloopt, uitgedrukt als het aantal seconden sinds 1 januari 1970 UTC. Gebruik deze waarde om te bepalen of uw token is verlopen voordat u een nieuwe probeert te verkrijgen.

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

Volgende stap