title: How to pass multiple authentication_classes in django rest framework?
body: <p>I want to create an api which can be accessed using client_id and client_secret as well as access token.
  To access api using client_id and client_secret I have a custom authentication class like this:-</p>
  
  <pre><code>class ClientAuthentication(authentication.BaseAuthentication):
      @staticmethod
      def get_client_credentials(request):
          try:
              client_id = request.headers.get('CLIENTID')
              client_secret = request.headers.get('CLIENTSECRET')
          except:
              raise AuthenticationFailed
          return {
              'client_id': client_id,
              'client_secret': client_secret
          }
  
      def authenticate(self, request):
          credentials = self.get_client_credentials(request)
  
          client_instance = Application.objects.filter(
              client_id=credentials['client_id'],
              client_secret=credentials['client_secret'],
          ).first()
  
          if not client_instance:
              raise AuthenticationFailed
          return client_instance, None
  
      def get_user_application(self, request):
          credentials = self.get_client_credentials(request)
  
          application_instance = Application.objects.filter(
              client_id=credentials['client_id'],
              client_secret=credentials['client_secret'],
          ).first()
  
          if not application_instance:
              raise AuthenticationFailed
          return application_instance, None
  </code></pre>
  
  <p>And the other authentication class i want to use is default OAuth2Authentication
  I tried passing the authentication_classes for viewset as:</p>
  
  <pre><code>authentication_classes = [ClientAuthentication | OAuth2Authentication]
  </code></pre>
  
  <p>But it gives me an error.
  How can I achieve this?</p>