Provided by: python-flask-httpauth_2.2.1-1_all bug

NAME

       flask-httpauth - Flask-HTTPAuth Documentation

       Flask-HTTPAuth  is  a  simple extension that provides Basic and Digest HTTP authentication
       for Flask routes.

BASIC AUTHENTICATION EXAMPLE

       The following example application uses HTTP Basic authentication to protect route '/':

          from flask import Flask
          from flask.ext.httpauth import HTTPBasicAuth

          app = Flask(__name__)
          auth = HTTPBasicAuth()

          users = {
              "john": "hello",
              "susan": "bye"
          }

          @auth.get_password
          def get_pw(username):
              if username in users:
                  return users.get(username)
              return None

          @app.route('/')
          @auth.login_required
          def index():
              return "Hello, %s!" % auth.username()

          if __name__ == '__main__':
              app.run()

       The get_password callback needs to return the password associated with the username  given
       as argument. Flask-HTTPAuth will allow access only if get_password(username) == password.

       If  the  passwords  are  stored hashed in the user database then an additional callback is
       needed:

          @auth.hash_password
          def hash_pw(password):
              return md5(password).hexdigest()

       When  the   hash_password   callback   is   provided   access   will   be   granted   when
       get_password(username) == hash_password(password).

       If  the hashing algorithm requires the username to be known then the callback can take two
       arguments instead of one:

          @auth.hash_password
          def hash_pw(username, password):
              get_salt(username)
              return hash(password, salt)

       For the most degree of flexibility the get_password and  hash_password  callbacks  can  be
       replaced with verify_password:

          @auth.verify_password
          def verify_pw(username, password):
              return call_custom_verify_function(username, password)

DIGEST AUTHENTICATION EXAMPLE

       The  following  example  is similar to the previous one, but HTTP Digest authentication is
       used:

          from flask import Flask
          from flask.ext.httpauth import HTTPDigestAuth

          app = Flask(__name__)
          app.config['SECRET_KEY'] = 'secret key here'
          auth = HTTPDigestAuth()

          users = {
              "john": "hello",
              "susan": "bye"
          }

          @auth.get_password
          def get_pw(username):
              if username in users:
                  return users.get(username)
              return None

          @app.route('/')
          @auth.login_required
          def index():
              return "Hello, %s!" % auth.username()

          if __name__ == '__main__':
              app.run()

       Note that because  digest  authentication  stores  data  in  Flask's  session  object  the
       configuration must have a SECRET_KEY set.

API DOCUMENTATION

       class flask_httpauth.HTTPBasicAuth
              This class that handles HTTP Basic authentication for Flask routes.

              get_password(password_callback)
                     This  callback  function  will  be  called  by  the  framework to obtain the
                     password for a given user. Example:

                        @auth.get_password
                        def get_password(username):
                            return db.get_user_password(username)

              hash_password(hash_password_callback)
                     If defined, this callback function will be called by the framework to  apply
                     a  custom  hashing algorithm to the password provided by the client. If this
                     callback isn't provided the password will be checked unchanged. The callback
                     can  take  one  or  two  arguments.  The  one  argument version receives the
                     password to hash, while the two argument version receives the  username  and
                     the password in that order. Example single argument callback:

                        @auth.hash_password
                        def hash_password(password):
                            return md5(password).hexdigest()

                     Example two argument callback:

                        @auth.hash_password
                        def hash_pw(username, password):
                            get_salt(username)
                            return hash(password, salt)

              verify_password(verify_password_callback)
                     If defined, this callback function will be called by the framework to verify
                     that the username and password combination provided by the client are valid.
                     The callback function takes two arguments, the username and the password and
                     must return True or False. Example usage:

                        @auth.verify_password
                        def verify_password(username, password):
                            user = User.query.filter_by(username).first()
                            if not user:
                                return False
                            return passlib.hash.sha256_crypt.verify(password, user.password_hash)

                     Note that when a verify_password callback is provided the  get_password  and
                     hash_password callbacks are not used.

              error_handler(error_callback)
                     If  defined,  this callback function will be called by the framework when it
                     is necessary to send an authentication error back to the client. The  return
                     value  from  this function can be the body of the response as a string or it
                     can also be a response object created with make_response. If  this  callback
                     isn't provided a default error response is generated. Example:

                        @auth.error_handler
                        def auth_error():
                            return "<h1>Access Denied</h1>"

              login_required(view_function_callback)
                     This callback function will be called when authentication is succesful. This
                     will typically be a Flask view function. Example:

                        @app.route('/private')
                        @auth.login_required
                        def private_page():
                            return "Only for authorized people!"

              username()
                     A view function that is protected with this  class  can  access  the  logged
                     username through this method. Example:

                        @app.route('/')
                        @auth.login_required
                        def index():
                            return "Hello, %s!" % auth.username()

       class flask.ext.httpauth.HTTPDigestAuth
              This class that handles HTTP Digest authentication for Flask routes. The SECRET_KEY
              configuration must be set in the Flask application to enable the session  to  work.
              Flask  by  default  stores  user  sessions  in the client as secure cookies, so the
              client must be able to handle cookies. To support clients that are not web browsers
              or  that  cannot  handle  cookies  a  session interface that writes sessions in the
              server must be used.

              get_password(password_callback)
                     See basic authentication for documentation and examples.

              error_handler(error_callback)
                     See basic authentication for documentation and examples.

              login_required(view_function_callback)
                     See basic authentication for documentation and examples.

              username()
                     See basic authentication for documentation and examples.

AUTHOR

       Miguel Grinberg

COPYRIGHT

       2013, Miguel Grinberg

                                          July 28, 2014                         FLASK-HTTPAUTH(1)