public void Handle(RemoveRefreshToken command) { var key = string.Format("{0}:{1}:{2}", this.RefreshTokenPrefixNamespace, command.ClientId, command.RefreshToken); this.redisWriteClient.Remove(key); //TODO Do we need persist before send Publish RefreshTokenRemoved then delete? //this.PublishEvent(new RefreshTokenRemoved() //{ // RefreshToken = command.RefreshToken //}); }
public HttpResponseMessage RemoveToken(string clientId, string refreshToken) { try { var command = new RemoveRefreshToken() { ClientId = clientId, RefreshToken = Guid.Parse(refreshToken) }; this.commandBus.Send(command); } catch { } return(new HttpResponseMessage(HttpStatusCode.OK)); }
public HttpResponseMessage LogOut() { try { var identity = (User.Identity as ClaimsIdentity); var clientId = identity.Claims.Where(c => c.Type == "ClientId").Select(c => c.Value).FirstOrDefault(); var refreshToken = identity.Claims.Where(c => c.Type == "RefreshToken").Select(c => c.Value).FirstOrDefault(); var command = new RemoveRefreshToken() { ClientId = clientId, RefreshToken = Guid.Parse(refreshToken) }; this.commandBus.Send(command); return(new HttpResponseMessage(HttpStatusCode.OK)); } catch { return(new HttpResponseMessage(HttpStatusCode.BadRequest)); } }
public IActionResult PostRemoveRefreshToken(RemoveRefreshToken removeRefreshToken) { var removed = _repository.RemoveRefreshToken(removeRefreshToken.RefreshToken); return(new OkObjectResult(removed)); }