private RefreshToken CreateRefreshTokenEntity(AuthenticationTokenCreateContext context)
        {
            var guid =
                new Guid(
                    context.Ticket.Identity.Claims.Where(c => c.Type == "RefreshToken")
                        .Select(c => c.Value)
                        .FirstOrDefault());
            var clientId = context.Ticket.Properties.Dictionary["as:client_id"];
            var refreshToken = new RefreshToken(guid, clientId, this.expriredTime);

            var refreshTokenTicket = new AuthenticationTicket(context.Ticket.Identity, new AuthenticationProperties(context.Ticket.Properties.Dictionary)
            {
                IssuedUtc = refreshToken.CreatedTime,
                ExpiresUtc = refreshToken.ExpiredTime
            });

            refreshToken.SetAuthenticationTicket(System.Text.Encoding.Default.GetString(serializer.Serialize(refreshTokenTicket)));

            return refreshToken;
        }