Table of Contents

Class AuthController

Namespace
KadicAuth.Api.Controllers
Assembly
KadicAuth.Api.dll
[ApiController]
[Route("api/[controller]")]
[Produces("application/json", new string[] { })]
public class AuthController : ControllerBase
Inheritance
object
ControllerBase
AuthController

Constructors

AuthController(IMediator, ILogger<AuthController>, IStringLocalizer<AuthMessages>)

public AuthController(IMediator mediator, ILogger<AuthController> logger, IStringLocalizer<AuthMessages> localizer)

Parameters

mediator IMediator
logger ILogger<AuthController>
localizer IStringLocalizer<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

request PasswordResetConfirmDto
cancellationToken CancellationToken

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

token string
cancellationToken CancellationToken

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

request LoginRequestDto

Login credentials

cancellationToken CancellationToken

Cancellation 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

cancellationToken CancellationToken

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

request RefreshTokenRequestDto
cancellationToken CancellationToken

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

request PasswordResetRequestDto
cancellationToken CancellationToken

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

Tenant Guid
request SessionValidationRequest
cancellationToken CancellationToken

Returns

Task<ActionResult>