def clear_strategies_cache!(*args)
      scope, opts = _retrieve_scope_and_opts(args)

      @winning_strategies.delete(scope)
      @strategies[scope].each do |k, v|
        v.clear! if args.empty? || args.include?(k)
      end
    end
def clear_strategies_cache!(*args)
      scope, opts = _retrieve_scope_and_opts(args)

      @winning_strategies.delete(scope)
      @strategies[scope].each do |k, v|
        v.clear! if args.empty? || args.include?(k)
      end
    end
Clear the cache of performed strategies so far. Warden runs each
 strategy just once during the request lifecycle. You can clear the
 strategies cache if you want to allow a strategy to be run more than
 once.

 This method has the same API as authenticate, allowing you to clear
 specific strategies for given scope:

 Parameters:
   args - a list of symbols (labels) that name the strategies to attempt
   opts - an options hash that contains the :scope of the user to check

 Example:
   # Clear all strategies for the configured default_scope
   env['warden'].clear_strategies_cache!

   # Clear all strategies for the :admin scope
   env['warden'].clear_strategies_cache!(:scope => :admin)

   # Clear password strategy for the :admin scope
   env['warden'].clear_strategies_cache!(:password, :scope => :admin)

 :api: public