Exemplo n.º 1
0
        public async Task <ActionResult <ApiResponse <bool> > > Logout(LogoutDto dto)
        {
            try
            {
                var isLoggedOut = await _authService.LogOut(dto.Username, dto.RefreshToken);

                return(isLoggedOut.CreateSuccessResponse("User logged out."));
            }
            catch (Exception exception)
            {
                return(Unauthorized(exception.CreateErrorResponse()));
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult <ApiResponse <bool> > > LogoutAll(LogoutDto dto)
        {
            try
            {
                var(allLoggedOut, deviceCount) = await _authService.LogOutFromAllDevice(dto.Username, dto.RefreshToken);

                return(allLoggedOut.CreateSuccessResponse($"User logged out from {deviceCount} devices."));
            }
            catch (Exception exception)
            {
                return(Unauthorized(exception.CreateErrorResponse()));
            }
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Logout(LogoutDto model)
        {
            var vm = await BuildLoggedOutViewModelAsync(model.LogoutId);

            if (User?.Identity.IsAuthenticated == true)
            {
                await _signInManager.SignOutAsync();

                await _events.RaiseAsync(new UserLogoutSuccessEvent(User.GetSubjectId(), User.GetDisplayName()));
            }

            return(PartialView("LoggedOut", vm));
        }
 public async Task <IActionResult> logout([FromBody] LogoutDto logoutDto)
 {
     //if ((User.FindFirst(ClaimTypes.NameIdentifier).Value) != Request.Headers["UserId"])
     //{
     //    return Unauthorized();
     //}
     if (!ModelState.IsValid)
     {
         return(Ok(HttpStatusCode.InternalServerError));
     }
     HttpContext.Response.Cookies.Delete(".AspNetCore.Security.Cookie");
     return(Ok("Success"));
 }
Exemplo n.º 5
0
        public async Task <IActionResult> LogOut([FromBody] LogoutDto model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState.Values.SelectMany(v => v.Errors).Select(modelError => modelError.ErrorMessage).ToList()));
                }

                await _authService.LogOut(model.RefreshToken);

                return(Ok(new { message = " logout succssesfully done" }));
            }
            catch (AppException ex) { return(BadRequest(new { message = ex.Message })); }
        }
Exemplo n.º 6
0
        public async Task <IActionResult> Logout(LogoutInputModel model)
        {
            _logger.LogInformation("Logout {User}", User?.Identity?.Name);

            var vm            = new LogoutDto();
            var authenticated = User?.Identity?.IsAuthenticated == true;

            if (authenticated)
            {
                if (string.IsNullOrEmpty(model.LogoutId))
                {
                    var idp = User.FindFirst(JwtClaimTypes.IdentityProvider)?.Value;
                    if (idp != null && idp != IdentityServer4.IdentityServerConstants.LocalIdentityProvider && await HttpContext.GetSchemeSupportsSignOutAsync(idp))
                    {
                        model.LogoutId = await _interaction.CreateLogoutContextAsync();
                    }
                }
                vm = await _mediator.Send(new DoLogoutCommand(model.LogoutId, User.GetSubjectId(), User.GetDisplayName()));
            }

            return(View("LoggedOut", vm));
        }
Exemplo n.º 7
0
    public async Task <IActionResult> Logout([FromBody] LogoutDto logoutDto)
    {
        //remove refresh token
        //delete cookies.
        if (!ModelState.IsValid)
        {
            return(new BadRequestObjectResult(ModelState));
        }

        var command = new LogoutCommand(logoutDto.Email);
        var result  = await _mediator.Send(command);

        if (result.Value == false)
        {
            return(new BadRequestObjectResult(result.ErrorMessages));
        }

        ExpireCookie("X-Access-Token");
        ExpireCookie("X-Refresh-Token");

        return(Ok());
    }