Kimlik doğrulama belirteci önbelleğe alınma
Bu makalede, uygulama performansını geliştirmek için kimlik doğrulama belirteci önbelleğe nasıl alınarak alınarak alına bir uygulama geliştirin.
ASP.NET kullanma
Belirteç almak için kullanılan Microsoft.IdentityModel.Clients.ActiveDirectory NuGet paketini içeri aktarın. Ardından, bir almak için aşağıdaki kodu kullanın ve kaynakta oluşturduğunuz AuthenticationResult kimlik doğrulama Tam Ekran Okuyucu kullanın.
private async Task<AuthenticationResult> GetTokenAsync()
{
AuthenticationContext authContext = new AuthenticationContext($"https://login.windows.net/{TENANT_ID}");
ClientCredential clientCredential = new ClientCredential(CLIENT_ID, CLIENT_SECRET);
AuthenticationResult authResult = await authContext.AcquireTokenAsync("https://cognitiveservices.azure.com/", clientCredential);
return authResult;
}
AuthenticationResultnesnesinin, AccessToken SDK'yı kullanarak uygulamayı başlatmada kullanabileceğiniz gerçek Tam Ekran Okuyucu özelliği vardır. Ayrıca belirteci ExpiresOn ne zaman sona erer? Uygulamayı başlatmadan Tam Ekran Okuyucu önce belirtecin süresinin dolmuş olup olmadığını kontrol edip yalnızca süresi dolduğunda yeni bir belirteç edinin.
Node.JS
İstek npm paketini projenize ekleyin. bir belirteç almak için aşağıdaki kodu kullanın ve kaynakta oluşturduğunuz kimlik doğrulama Tam Ekran Okuyucu kullanın.
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
});
}
);
});
özelliği, belirteci sona erdiğinde 1 Ocak 1970 UTC'den bu yana geçen saniye sayısı olarak expires_on ifade edilir. Yeni bir tane elde etmek istemeden önce belirtecin süresinin dop dolmadan önce olup olmadığını belirlemek için bu değeri kullanın.
async function getToken() {
if (Date.now() / 1000 > CREDENTIALS.expires_on) {
CREDENTIALS = await refreshCredentials();
}
return CREDENTIALS.access_token;
}
Sonraki adımlar
- Tam Ekran Okuyucu SDK Başvurusu'Tam Ekran Okuyucu keşfetme