Class AuthController
- Namespace
- KadicAuth.Api.Controllers
- Assembly
- KadicAuth.Api.dll
[ApiController]
[Route("api/[controller]")]
[Produces("application/json", new string[] { })]
public class AuthController : ControllerBase
- Inheritance
-
objectControllerBaseAuthController
Constructors
AuthController(IMediator, ILogger<AuthController>, IStringLocalizer<AuthMessages>)
public AuthController(IMediator mediator, ILogger<AuthController> logger, IStringLocalizer<AuthMessages> localizer)
Parameters
mediatorIMediatorloggerILogger<AuthController>localizerIStringLocalizer<AuthMessages>
Methods
ConfirmPasswordReset(PasswordResetConfirmDto, CancellationToken)
Confirm password reset using the token from email
[HttpPost("reset-password/confirm")]
[AllowAnonymous]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult> ConfirmPasswordReset(PasswordResetConfirmDto request, CancellationToken cancellationToken)
Parameters
requestPasswordResetConfirmDtocancellationTokenCancellationToken
Returns
- Task<ActionResult>
ConfirmPasswordResetValidateToken(string, CancellationToken)
Validate password reset token
[HttpPost("validate-token")]
[AllowAnonymous]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult> ConfirmPasswordResetValidateToken(string token, CancellationToken cancellationToken)
Parameters
tokenstringcancellationTokenCancellationToken
Returns
- Task<ActionResult>
Login(LoginRequestDto, CancellationToken)
Authenticate user and generate JWT token
[HttpPost("login")]
[AllowAnonymous]
[EnableRateLimiting("login")]
[ProducesResponseType(typeof(LoginResponseDto), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<LoginResponseDto>> Login(LoginRequestDto request, CancellationToken cancellationToken)
Parameters
requestLoginRequestDtoLogin credentials
cancellationTokenCancellationTokenCancellation token
Returns
- Task<ActionResult<LoginResponseDto>>
Login response with access token
Logout(CancellationToken)
Logout user and revoke session
[HttpPost("logout")]
[Authorize]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult> Logout(CancellationToken cancellationToken)
Parameters
cancellationTokenCancellationToken
Returns
- Task<ActionResult>
RefreshToken(RefreshTokenRequestDto, CancellationToken)
Refresh access token using a valid refresh token
[HttpPost("refresh")]
[AllowAnonymous]
[EnableRateLimiting("refresh")]
[ProducesResponseType(typeof(LoginResponseDto), 200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult<LoginResponseDto>> RefreshToken(RefreshTokenRequestDto request, CancellationToken cancellationToken)
Parameters
requestRefreshTokenRequestDtocancellationTokenCancellationToken
Returns
- Task<ActionResult<LoginResponseDto>>
RequestPasswordReset(PasswordResetRequestDto, CancellationToken)
Request a password reset link
[HttpPost("reset-password/request")]
[AllowAnonymous]
[EnableRateLimiting("password-reset")]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult> RequestPasswordReset(PasswordResetRequestDto request, CancellationToken cancellationToken)
Parameters
requestPasswordResetRequestDtocancellationTokenCancellationToken
Returns
- Task<ActionResult>
ValidateSession(Guid, SessionValidationRequest, CancellationToken)
Validate a session id (service-to-service)
[HttpPost("sessions/validate")]
[AllowAnonymous]
[ProducesResponseType(200)]
[ProducesResponseType(typeof(Error), 400)]
public Task<ActionResult> ValidateSession(Guid Tenant, SessionValidationRequest request, CancellationToken cancellationToken)
Parameters
TenantGuidrequestSessionValidationRequestcancellationTokenCancellationToken
Returns
- Task<ActionResult>