private async Task <CredentialViewModel> GenerateApiKeyInternal(string description, ICollection <Scope> scopes, TimeSpan?expiration) { var user = GetCurrentUser(); // Create a new API Key credential, and save to the database var newCredential = _credentialBuilder.CreateApiKey(expiration, out string plaintextApiKey); newCredential.Description = description; newCredential.Scopes = scopes; await _authService.AddCredential(user, newCredential); var credentialViewModel = _authService.DescribeCredential(newCredential); credentialViewModel.Value = plaintextApiKey; return(credentialViewModel); }
public virtual async Task <ActionResult> GenerateApiKey(int?expirationInDays) { // Get the user var user = GetCurrentUser(); // Set expiration var expiration = TimeSpan.Zero; if (_config.ExpirationInDaysForApiKeyV1 > 0) { expiration = TimeSpan.FromDays(_config.ExpirationInDaysForApiKeyV1); if (expirationInDays.HasValue && expirationInDays.Value > 0) { expiration = TimeSpan.FromDays(Math.Min(expirationInDays.Value, _config.ExpirationInDaysForApiKeyV1)); } } // Add/Replace the API Key credential, and save to the database TempData["Message"] = Strings.ApiKeyReset; await _authService.ReplaceCredential(user, _credentialBuilder.CreateApiKey(expiration)); return(RedirectToAction("Account")); }