Metadata-Version: 1.0
Name: django-shirow
Version: 0.3
Summary: Django Shirow package
Home-page: https://github.com/tolstoyevsky/shirow
Author: Evgeny Golyshev
Author-email: Evgeny Golyshev <eugulixes@gmail.com>
License: http://www.apache.org/licenses/LICENSE-2.0
Description-Content-Type: UNKNOWN
Description: Django Shirow
        =============
        
        To connect to the RPC servers based on
        `Shirow <https://github.com/tolstoyevsky/shirow>`__, clients have to be
        authenticated using the `Django authentication
        system <https://docs.djangoproject.com/en/2.0/topics/auth/>`__. Thus,
        the package provides the ``create_token_if_needed`` decorator which is
        intended for Django views. First, the decorator tries to obtain a token
        from Redis. Then, in case the try doesn't succeed,
        ``create_token_if_needed`` will create and put it into Redis and the
        user's session. Finally, the client can get the token from the session
        and prove the RPC server he/she is an authenticated user.
        
        The decorator uses JWT for generating tokens. JWT (JSON Web Token) is
        the open standard defined in `RFC
        7519 <https://tools.ietf.org/html/rfc7519>`__.
        
        Installation
        ------------
        
        ::
        
            $ pip install django-shirow
        
        Usage
        -----
        
        This Django application uses the following configuration keys:
        
        -  ``SECRET_KEY`` is a string which contains a secret. Django uses the
           configuration key for `cryptographic
           signing <https://docs.djangoproject.com/en/2.0/topics/signing/>`__,
           but ``create_token_if_needed`` uses it for signing the tokens, using
           the algorithm specified by ``TOKEN_ALGORITHM_ENCODING`` (see below).
        -  ``TOKEN_TTL`` is a number which contains a time-in-seconds value. It
           indicates how long tokens are considered valid. If ``TOKEN_TTL`` is
           not set, then TTL is set to ``900`` (15 minutes).
        -  ``TOKEN_ALGORITHM_ENCODING`` is a string which contains `one of the
           algorithms <https://pyjwt.readthedocs.io/en/latest/algorithms.html#digital-signature-algorithms>`__
           used for signing tokens. If ``TOKEN_ALGORITHM_ENCODING`` is not set,
           then the algorithm is set to ``HS256``.
        -  ``REDIS_HOST`` is a string which contains the Redis host. If
           ``REDIS_HOST`` is not set, then the host is set to ``127.0.0.1``.
        -  ``REDIS_PORT`` is a number which contains the port the Redis server
           listens on. If ``REDIS_PORT`` is not set, then the port is set to
           ``6379``.
        
Platform: UNKNOWN
