Beispiel #1
0
        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));
            }
        }
Beispiel #4
0
        public IActionResult PostRemoveRefreshToken(RemoveRefreshToken removeRefreshToken)
        {
            var removed = _repository.RemoveRefreshToken(removeRefreshToken.RefreshToken);

            return(new OkObjectResult(removed));
        }