class_docstr: An AuthProvider configured from a Python module.
  
  The following properties return the corresponding values from the module if
  they exist, or None otherwise:
  
  * ``get_login_url``,
  * ``get_user``
  * ``get_user_async``
  * ``login_url``
  * ``logout_url``
  
  The ``login_handler`` property will return a ``LoginHandler`` class from the
  module, or None otherwise.
  
  The ``logout_handler`` property will return a ``LogoutHandler`` class from
  the module, or None otherwise.
class_docstr_tok: ["An","AuthProvider","configured","from","a","Python","module",".","The","following","properties","return","the","corresponding","values","from","the","module","if","they","exist",",","or","None","otherwise",":","*","``","get_login_url","``",",","*","``","get_user","``","*","``","get_user_async","``","*","``","login_url","``","*","``","logout_url","``","The","``","login_handler","``","property","will","return","a","``","LoginHandler","``","class","from","the","module",",","or","None","otherwise",".","The","``","logout_handler","``","property","will","return","a","``","LogoutHandler","``","class","from","the","module",",","or","None","otherwise","."]
code: def login_handler(self):
      return getattr(self._module, "LoginHandler", None)
  
imports: from __future__ import annotations
  import logging
  import importlib.util
  from os.path import isfile
  from types import ModuleType
  from typing import TYPE_CHECKING, Awaitable, Callable, NewType
  from tornado.httputil import HTTPServerRequest
  from tornado.web import RequestHandler
  from ..util.serialization import make_globally_unique_id
label_desc: Use image node_id 6 for calling the AuthModule obj's underlying member method code with example usage: obj.login_handler() and returns: getattr