This commit is contained in:
2026-10-09 23:17:51 +03:30
parent 2e8f269ae6
commit 5085fc54a4
8 changed files with 168 additions and 28 deletions
@@ -27,8 +27,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpGet("ApiKeys/{id}")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/ApiKeys/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApiKeyDto>> GetApiKey( public async Task<ActionResult<XApiKeyDto>> GetApiKey(
[FromRoute] Guid id, [FromRoute] Guid id,
@@ -75,8 +75,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpDelete("ApiKeys/{id}")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpDelete("Applications/ApiKeys/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApiKeyDto>> RemoveApiKey( public async Task<ActionResult<XApiKeyDto>> RemoveApiKey(
[FromRoute] Guid id, [FromRoute] Guid id,
@@ -123,8 +123,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpPut("ApiKeys/{id}")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpPut("Applications/ApiKeys/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApiKeyDto>> UpdateApiKey( public async Task<ActionResult<XApiKeyDto>> UpdateApiKey(
[FromRoute] Guid id, [FromRoute] Guid id,
@@ -173,8 +173,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpGet("ApiKeys")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/ApiKeys")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<IEnumerable<XApiKeyDto>>> GetAllApiKeys( public async Task<ActionResult<IEnumerable<XApiKeyDto>>> GetAllApiKeys(
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -213,8 +213,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpGet("ApiKeys/Query")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/ApiKeys/Query")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XQueryResult<XApiKeyDto>>> QueryApiKeys( public async Task<ActionResult<XQueryResult<XApiKeyDto>>> QueryApiKeys(
[FromRoute] XQuery query, [FromRoute] XQuery query,
@@ -27,8 +27,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpPost("ApiKeys/Usages")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpPost("Applications/ApiKeys/Usages")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApiKeyUsageDto>> AddApiKeyUsage( public async Task<ActionResult<XApiKeyUsageDto>> AddApiKeyUsage(
[FromBody] XApiKeyUsageDto item, [FromBody] XApiKeyUsageDto item,
@@ -74,8 +74,8 @@ namespace xIds.Controllers
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("ApiKeys/Usages/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpGet("Applications/ApiKeys/Usages/{id}")]
public async Task<ActionResult<XApiKeyUsageDto>> GetApiKeyUsage( public async Task<ActionResult<XApiKeyUsageDto>> GetApiKeyUsage(
[FromRoute] long id, [FromRoute] long id,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -122,8 +122,8 @@ namespace xIds.Controllers
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpDelete("ApiKeys/Usages/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpDelete("Applications/ApiKeys/Usages/{id}")]
public async Task<ActionResult<XApiKeyUsageDto>> RemoveApiKeyUsage( public async Task<ActionResult<XApiKeyUsageDto>> RemoveApiKeyUsage(
[FromRoute] long id, [FromRoute] long id,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -170,8 +170,8 @@ namespace xIds.Controllers
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpPut("ApiKeys/Usages/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpPut("Applications/ApiKeys/Usages/{id}")]
public async Task<ActionResult<XApiKeyUsageDto>> UpdateApiKeyUsage( public async Task<ActionResult<XApiKeyUsageDto>> UpdateApiKeyUsage(
[FromRoute] long id, [FromRoute] long id,
[FromBody] XApiKeyUsageDto item, [FromBody] XApiKeyUsageDto item,
@@ -219,8 +219,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpGet("ApiKeys/Usages")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/ApiKeys/Usages")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<IEnumerable<XApiKeyUsageDto>>> GetAllApiKeyUsages( public async Task<ActionResult<IEnumerable<XApiKeyUsageDto>>> GetAllApiKeyUsages(
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -260,7 +260,7 @@ namespace xIds.Controllers
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/ApiKeys/Usages/Query")] [HttpGet("ApiKeys/Usages/Query")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XQueryResult<XApiKeyUsageDto>>> QueryApiKeyUsages( public async Task<ActionResult<XQueryResult<XApiKeyUsageDto>>> QueryApiKeyUsages(
[FromRoute] XQuery query, [FromRoute] XQuery query,
@@ -36,8 +36,8 @@ namespace xIds.Controllers
/// <param name="item"></param> /// <param name="item"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost("")]
[RequireXPowered] [RequireXPowered]
[HttpPost("Applications")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApplicationDto>> CreateApplication( public async Task<ActionResult<XApplicationDto>> CreateApplication(
@@ -93,8 +93,8 @@ namespace xIds.Controllers
/// <param name="item"></param> /// <param name="item"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[HttpPut("")]
[RequireXPowered] [RequireXPowered]
[HttpPut("Applications")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApplicationDto>> UpdateApplication( public async Task<ActionResult<XApplicationDto>> UpdateApplication(
@@ -141,8 +141,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpDelete("{id}")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpDelete("Applications/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApplicationDto>> RemoveApplication( public async Task<ActionResult<XApplicationDto>> RemoveApplication(
[FromRoute] int id, [FromRoute] int id,
@@ -188,8 +188,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpGet("{id}")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/{id}")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XApplicationDto>> GetApplication( public async Task<ActionResult<XApplicationDto>> GetApplication(
[FromRoute] int id, [FromRoute] int id,
@@ -234,9 +234,9 @@ namespace xIds.Controllers
/// </summary> /// </summary>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("")]
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<IEnumerable<XApplicationDto>>> GetAllApplications( public async Task<ActionResult<IEnumerable<XApplicationDto>>> GetAllApplications(
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -275,8 +275,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpGet("Query")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("Applications/Query")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
public async Task<ActionResult<XQueryResult<XApplicationDto>>> QueryApplications( public async Task<ActionResult<XQueryResult<XApplicationDto>>> QueryApplications(
[FromRoute] XQuery query, [FromRoute] XQuery query,
@@ -18,6 +18,57 @@ namespace xIds.Controllers
{ {
public partial class ApplicationsController public partial class ApplicationsController
{ {
/// <summary>
/// Show Api Key ...
/// </summary>
/// <param name="apiKeyId"></param>
/// <param name="applicationId"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[RequireXPowered]
[Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)]
[HttpGet("{applicationId}/ApiKeys/{apiKeyId}/Show")]
public async Task<ActionResult<string>> ShowApiKey(
[FromRoute] Guid apiKeyId,
[FromRoute] int applicationId,
CancellationToken cancellationToken = default
)
{
//
try
{
//
// Validate ...
if (
apiKeyId.IsDefaultGuid() ||
!applicationId.IsValidIntId())
{
XException.InvalidArgs.Throw();
}
//
var userInfo = await GetUserInfo();
//
var result = await provider.ShowApiKey(
userInfo: userInfo,
apiKeyId: apiKeyId,
applicationId: applicationId,
cancellationToken: cancellationToken
);
//
return Ok(result);
}
catch (Exception ex)
{
//
var result = GetExceptionActionResult(ex);
return result;
}
}
/// <summary> /// <summary>
/// Create Api Key ... /// Create Api Key ...
/// </summary> /// </summary>
@@ -28,7 +79,7 @@ namespace xIds.Controllers
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpPost("Applications/{applicationId}/ApiKeys/Create")] [HttpPost("{applicationId}/ApiKeys/Create")]
public async Task<ActionResult<XApiKeyDto>> CreateApiKey( public async Task<ActionResult<XApiKeyDto>> CreateApiKey(
[FromRoute] int applicationId, [FromRoute] int applicationId,
[FromBody] XCreateApiKeyRequest request, [FromBody] XCreateApiKeyRequest request,
@@ -116,7 +167,7 @@ namespace xIds.Controllers
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpDelete("Applications/{applicationId}/ApiKeys/{apiKeyId}")] [HttpDelete("{applicationId}/ApiKeys/{apiKeyId}")]
public async Task<ActionResult<XApiKeyDto>> RemoveApiKey( public async Task<ActionResult<XApiKeyDto>> RemoveApiKey(
[FromRoute] Guid apiKeyId, [FromRoute] Guid apiKeyId,
[FromRoute] int applicationId, [FromRoute] int applicationId,
@@ -181,7 +232,7 @@ namespace xIds.Controllers
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpPost("Applications/{applicationId}/ApiKeys/{apiKeyId}")] [HttpPost("{applicationId}/ApiKeys/{apiKeyId}")]
public async Task<ActionResult<XApiKeyDto>> RotateApiKey( public async Task<ActionResult<XApiKeyDto>> RotateApiKey(
[FromRoute] Guid apiKeyId, [FromRoute] Guid apiKeyId,
[FromRoute] int applicationId, [FromRoute] int applicationId,
@@ -262,7 +313,7 @@ namespace xIds.Controllers
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpPost("Applications/{applicationId}/ApiKeys/{apiKeyId}/Revoke")] [HttpPost("{applicationId}/ApiKeys/{apiKeyId}/Revoke")]
public async Task<ActionResult<bool>> RevokeApiKey( public async Task<ActionResult<bool>> RevokeApiKey(
[FromRoute] Guid apiKeyId, [FromRoute] Guid apiKeyId,
[FromRoute] int applicationId, [FromRoute] int applicationId,
@@ -323,8 +374,8 @@ namespace xIds.Controllers
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpGet("{applicationId}/ApiKeys")]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpPost("Applications/{applicationId}/ApiKeys")]
public async Task<ActionResult<IEnumerable<XApiKeyDto>>> GetApiKeys( public async Task<ActionResult<IEnumerable<XApiKeyDto>>> GetApiKeys(
[FromRoute] int applicationId, [FromRoute] int applicationId,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -384,7 +435,7 @@ namespace xIds.Controllers
[RequireXPowered] [RequireXPowered]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[Authorize(Policy = XPolicies.EnabledUser)] [Authorize(Policy = XPolicies.EnabledUser)]
[HttpPost("Applications/{applicationId}/ApiKeys/{apiKeyId}/Usages")] [HttpGet("{applicationId}/ApiKeys/{apiKeyId}/Usages")]
public async Task<ActionResult<IEnumerable<XApiKeyUsageDto>>> GetApiKeyUsages( public async Task<ActionResult<IEnumerable<XApiKeyUsageDto>>> GetApiKeyUsages(
[FromRoute] Guid apiKeyId, [FromRoute] Guid apiKeyId,
[FromRoute] int applicationId, [FromRoute] int applicationId,
@@ -460,8 +511,8 @@ namespace xIds.Controllers
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
[RequireXPowered] [RequireXPowered]
[HttpPost("ApiKeys/Validate")]
[Authorize(LocalApi.PolicyName)] [Authorize(LocalApi.PolicyName)]
[HttpPost("Applications/ApiKeys/Validate")]
public async Task<ActionResult<XApiKeyValidationResult>> ValidateApiKey( public async Task<ActionResult<XApiKeyValidationResult>> ValidateApiKey(
[FromBody] XApiKeyValidationRequest request, [FromBody] XApiKeyValidationRequest request,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
+17
View File
@@ -176,11 +176,13 @@ namespace xIds.Interfaces
/// Add Specified Item ... /// Add Specified Item ...
/// </summary> /// </summary>
/// <param name="item"></param> /// <param name="item"></param>
/// <param name="apiKey"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
Task<XApiKeyDto> AddApiKeyAsync( Task<XApiKeyDto> AddApiKeyAsync(
XApiKeyDto item, XApiKeyDto item,
string apiKey = null,
XUserClaimsInfoDto userInfo = null, XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
@@ -480,6 +482,21 @@ namespace xIds.Interfaces
// //
#region Custom Actions ... #region Custom Actions ...
/// <summary>
/// Show Specifid Api Key ...
/// </summary>
/// <param name="apiKeyId"></param>
/// <param name="applicationId"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<string> ShowApiKey(
Guid apiKeyId,
int applicationId,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
);
/// <summary> /// <summary>
/// Generate a New ApiKey and Add It to DB ... /// Generate a New ApiKey and Add It to DB ...
/// </summary> /// </summary>
@@ -26,11 +26,13 @@ namespace xIds.Providers
/// Add Specified Item ... /// Add Specified Item ...
/// </summary> /// </summary>
/// <param name="item"></param> /// <param name="item"></param>
/// <param name="apiKey"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <param name="cancellationToken"></param> /// <param name="cancellationToken"></param>
/// <returns></returns> /// <returns></returns>
public async Task<XApiKeyDto> AddApiKeyAsync( public async Task<XApiKeyDto> AddApiKeyAsync(
XApiKeyDto item, XApiKeyDto item,
string apiKey = null,
XUserClaimsInfoDto userInfo = null, XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
@@ -85,7 +87,12 @@ namespace xIds.Providers
item.CreatedOn = DateTime.UtcNow; item.CreatedOn = DateTime.UtcNow;
// //
var entity = item.MapConvert<XApiKey, XApiKeyDto>(); var entity = item.MapConvert<XApiKey, XApiKeyDto>(mapperConfigurationExp);
if (!apiKey.IsNullOrEmpty())
{
entity.Key = apiKey;
}
var entry = await dbContext.ApiKeys.AddAsync( var entry = await dbContext.ApiKeys.AddAsync(
entity: entity, entity: entity,
cancellationToken: cancellationToken cancellationToken: cancellationToken
@@ -17,6 +17,67 @@ namespace xIds.Providers
{ {
// //
#region Custom Actions ... #region Custom Actions ...
/// <summary>
/// Show Specifid Api Key ...
/// </summary>
/// <param name="apiKeyId"></param>
/// <param name="applicationId"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<string> ShowApiKey(
Guid apiKeyId,
int applicationId,
XUserClaimsInfoDto userInfo = null,
CancellationToken cancellationToken = default
)
{
//
// Validate ...
if (
apiKeyId.IsDefaultGuid() ||
userInfo.IsNullOrDefault() ||
!applicationId.IsValidIntId()
)
{
XException.InvalidArgs.Throw();
}
//
// Check Application Exists ...
var application = await GetApplicationAsync(
id: applicationId,
userInfo: userInfo,
includeBuilder: null,
ignoreSoftDeleteds: true,
cancellationToken: cancellationToken
);
if (application.IsNullOrDefault())
{
XException.NotFound.Throw();
}
//
// Validate Owner ...
if (!IsOwned(application, userInfo))
{
XException.NotAllowed.Throw();
}
//
// Retrieve ApiKey Entity ...
// Since ApiKey is Only Exists on ApiKey Entity ...
var entity = await dbContext.ApiKeys
.FirstOrDefaultAsync(x => x.Id == apiKeyId);
if (entity.IsNullOrDefault())
{
XException.NotFound.Throw();
}
//
return entity.Key;
}
/// <summary> /// <summary>
/// Generate a New ApiKey and Add It to DB ... /// Generate a New ApiKey and Add It to DB ...
/// </summary> /// </summary>
@@ -114,6 +175,7 @@ namespace xIds.Providers
// Add Item to Database ... // Add Item to Database ...
result = await AddApiKeyAsync( result = await AddApiKeyAsync(
item: result, item: result,
apiKey: plainKey,
userInfo: userInfo, userInfo: userInfo,
cancellationToken: cancellationToken cancellationToken: cancellationToken
); );
@@ -371,7 +433,7 @@ namespace xIds.Providers
.ParseListString<string>(); .ParseListString<string>();
var allowedScopes = (keyModel.AllowedScopes ?? string.Empty) var allowedScopes = (keyModel.AllowedScopes ?? string.Empty)
.FromJSON<IEnumerable<string>>(); .FromJSON<IEnumerable<string>>();
result.Scopes = [..allowedScopes]; result.Scopes = [.. allowedScopes];
// //
// Check Application is Exists and Active ... // Check Application is Exists and Active ...
+4 -1
View File
@@ -67,7 +67,10 @@ namespace xIds
// //
// Register Authentication ... // Register Authentication ...
services.AddXIdentityServerAuthentication(Configuration); services.AddXIdentityServerAuthentication(
configuration: Configuration,
addApiKeyAuthentication: true
);
// //
// Register Authorization ... // Register Authorization ...