{"repo":"jpmanson/EasyOIDC","free":true,"listed":false,"github":"https://github.com/jpmanson/EasyOIDC","clone":"git clone https://github.com/jpmanson/EasyOIDC.git","description":"Easy integration with OIDC (OpenID Connect) authentication servers. Examples in FastAPI, Flask, NiceGUI and Taipy web frameworks","language":"Python","stars":19,"topics":["flask","nicegui","oauth2","oauth2-client","oidc","oidc-client","taipy","fastapi"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"Introduction EasyOIDC is a Python library that provides a simple interface to the OpenID Connect) protocol. It is designed to be easy to use and to integrate into existing applications. It is built on top of the Authlib library. EasyOIDC can basically adapt to any web framework that supports session variables, route definition, and redirection. As an example, integration examples with Flask, FastAPI, NiceGUI, Streamlit, Taipy and Bottle are provided. In addition, the library has high-level classes, to integrate even more easily with Flask, FastAPI, NiceGUI and Taipy. The idea of the project is to gradually incorporate high-level support for new web frameworks from the Python world. EasyOIDC has been tested with OIDC backends such as Keycloak, Google and Auth0, and could connect to virtually any OpenID Connect) compatible server. Installation The library is available via PyPi (https://pypi.org/project/EasyOIDC/) If you are going to use it with a specific web framework, you can install it like this: Usage Flask This is an example of how to integrate EasyOIDC with Flask: FastAPI This is an example of how to integrate EasyOIDC with FastAPI: FastAPI has no ambient (context-local) session object like flask.session or NiceGUI's app.storage.user , so the methods that inspect the current user take an explicit Request : auth.is authenticated(request) , auth.get userinfo(request) and auth.get user roles(request) . The same information is also available as dependencies: - Depends(auth.cu","default_branch":null,"files":null,"tree":[],"storefront":"/r/jpmanson","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jpmanson/EasyOIDC/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}