From 8bfbc60877cabae5b5ff3640a951365034d8f743 Mon Sep 17 00:00:00 2001 From: Ignacio Fiorentino Date: Tue, 6 Sep 2016 15:38:52 -0300 Subject: [PATCH] Add more doc. --- CHANGELOG.md | 4 ++ docs/index.rst | 1 + docs/sections/contribute.rst | 6 +-- docs/sections/examples.rst | 94 ++++++++++++++++++++++++++++++++++++ 4 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 docs/sections/examples.rst diff --git a/CHANGELOG.md b/CHANGELOG.md index 43d2c0d..9faf401 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file. ##### Added - Polish translations. +- Examples section in documentation. + +##### Fixed +- CORS in discovery and userinfo endpoint. ### [0.3.7] - 2016-08-31 diff --git a/docs/index.rst b/docs/index.rst index 43974a5..e0f7ff2 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -31,6 +31,7 @@ Contents: sections/userconsent sections/oauth2 sections/settings + sections/examples sections/contribute .. diff --git a/docs/sections/contribute.rst b/docs/sections/contribute.rst index f7a07e9..091d28a 100644 --- a/docs/sections/contribute.rst +++ b/docs/sections/contribute.rst @@ -31,7 +31,7 @@ Improve Documentation We use `Sphinx `_ for generate this documentation. I you want to add or modify something just: -* Install Sphinx ``pip install sphinx`` and this theme ``pip install sphinx-rtd-theme``. +* Install Sphinx (``pip install sphinx``) and the auto-build tool (``pip install sphinx-autobuild``). * Move inside the docs folder. ``cd docs/`` -* Generate the HTML. ``make html`` -* Open ``docs/_build/html/index.html`` on a browser. +* Generate and watch docs by running ``sphinx-autobuild . _build/``. +* Open ``http://127.0.0.1:8000`` on a browser. diff --git a/docs/sections/examples.rst b/docs/sections/examples.rst new file mode 100644 index 0000000..d1e8254 --- /dev/null +++ b/docs/sections/examples.rst @@ -0,0 +1,94 @@ +.. _examples: + +Examples +######## + +Pure JS client using Implicit Flow +================================== + +Testing OpenID Connect flow can be as simple as putting one file with a few functions on the client and calling the provider. Let me show. + +**01. Setup the provider** + +You can use the example project code to run your OIDC Provider at ``localhost:8000``. + +Go to the admin site and create a public client with a response_type ``id_token token`` and a redirect_uri ``http://localhost:3000``. + +.. note:: + Remember to create at least one **RSA Key** for the server. ``python manage.py creatersakey`` + +**02. Create the client** + +As relying party we are going to use a JS library created by Nat Sakimura. `Here is the article `_. + +**index.html**:: + + + + + + OIDC RP + + + + +
+

OpenID Connect RP Example

+ +
+ + + + + + + + + +.. note:: + Remember that you must set your client_id (line 21). + +**03. Make an authorization request** + +By clicking the login button an authorization request has been made to the provider. After you accept it, the provider will redirect back to your previously registered ``redirect_uri`` with all the tokens requested. + +**04. Requesting user information** + +Now having the access_token in your hands you can request the user information by making a request to the ``/userinfo`` endpoint of the provider. + +In this example we display information in the alert box.