У меня есть веб-API на бэкэнде, а также веб-приложение и телефонное приложение на интерфейсе. Я использую Auth0 для аутентификации OAuth/OpenId на всех трех. И веб-API, и веб-приложение написаны на ASP .Net Core 1.1 MVC.
Каждый раз, когда я вызываю веб-API из веб-приложения, я запрашиваю токен доступа от Auth0. Итак, в каждом действии контроллера, требующем доступа к моему API, у меня есть:
var client = new HttpClient();
var tokenResponse = await client.PostAsync(tokenEndpoint,
new FormUrlEncodedContent(new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("grant_type", "client_credentials"),
new KeyValuePair<string, string>("client_id", _auth0Settings.ClientId),
new KeyValuePair<string, string>("client_secret", _auth0Settings.ClientSecret),
new KeyValuePair<string, string>("audience", _auth0Settings.ApiIdentifier),
}));
Это правильный способ сделать это? Или я должен просто выполнить это один раз при запуске веб-приложения, а затем сохранить токен доступа в глобальной переменной, которую я могу вызывать со всех своих контроллеров?