def parse_id_token(id_token)
      if id_token.nil?
        logger.warn('No id token found.')
        @user_info ||= ADAL::UserInformation.new(unique_id: SecureRandom.uuid)
        return
      end
      logger.verbose('Attempting to decode id token in token response.')
      claims = JWT.decode(id_token.to_s, nil, false).first
      @id_token = id_token
      @user_info = ADAL::UserInformation.new(claims)
    end
def parse_id_token(id_token)
      if id_token.nil?
        logger.warn('No id token found.')
        @user_info ||= ADAL::UserInformation.new(unique_id: SecureRandom.uuid)
        return
      end
      logger.verbose('Attempting to decode id token in token response.')
      claims = JWT.decode(id_token.to_s, nil, false).first
      @id_token = id_token
      @user_info = ADAL::UserInformation.new(claims)
    end
Parses the raw id token into an ADAL::UserInformation.
 If the id token is missing, an ADAL::UserInformation will still be
 generated, it just won't contain any displayable information.

 @param String id_token
   The id token to parse
   Adds an id token to the token response if one is not present