<NME> index.rst
<BEF> .. rst-class:: hide-header

ItsDangerous
============

.. image:: _static/itsdangerous-logo.png
    :align: center
    :target: https://palletsprojects.com/p/itsdangerous/

Sometimes you want to send some data to untrusted environments, then get
it back later. To do this safely, the data must be signed to detect
changes.

Given a key only you know, you can cryptographically sign your data and
hand it over to someone else. When you get the data back you can ensure
that nobody tampered with it.

The receiver can see the data, but they can not modify it unless they
also have your key. So if you keep the key secret and complex, you will
be fine.


Installing
----------

Install and update using `pip`_:

    pip install itsdangerous

Signing Interface
-----------------

    client in general which makes them useful for passing server-side
    state to a client and then back.


Table of Contents
-----------------

.. toctree::

    concepts
    serializer
    signer
    exceptions
    timed
    url_safe
    encoding
    license
    changes

<MSG> Added example use cases

<DFF> @@ -27,6 +27,19 @@ You can get the library directly from PyPI::
 
     pip install itsdangerous
 
+Example Use Cases
+-----------------
+
+-   You can serialize and sign a user ID for unsubscribing of newsletters
+    into URLs.  This way you don't need to generate one-time tokens and
+    store them in the database.
+-   Signed objects can be stored in cookies or other untrusted sources
+    which means you don't need to have sessions stored on the server which
+    reduces the number of necessary database queries.
+-   Signed information can safely do a roundtrip between server and client
+    in general which makes them useful for passing server-side state to a
+    client and then back.
+
 Signing Interface
 -----------------
 

Added example use cases