Auth0 server-side Python SDK
Project description
The Auth0 Server Python SDK is a library for implementing user authentication in Python applications.
📚 Documentation - 🚀 Getting Started - 💬 Feedback
Documentation
- Examples - examples for your different use cases.
- Docs Site - explore our docs site and learn more about Auth0.
Getting Started
1. Install the SDK
pip install auth0-server-python
If you’re using Poetry:
poetry install auth0-server-python
2. Create the Auth0 SDK client
Create an instance of the Auth0 client. This instance will be imported and used in anywhere we need access to the authentication methods.
from auth0_server_python.auth_server.server_client import ServerClient
auth0 = ServerClient(
domain='<AUTH0_DOMAIN>',
client_id='<AUTH0_CLIENT_ID>',
client_secret='<AUTH0_CLIENT_SECRET>',
secret='<AUTH0_SECRET>',
authorization_params= {
redirect_uri: '<AUTH0_REDIRECT_URI>',
}
)
The AUTH0_DOMAIN
, AUTH0_CLIENT_ID
, and AUTH0_CLIENT_SECRET
can be obtained from the Auth0 Dashboard once you've created an application. This application must be a Regular Web Application
.
The AUTH0_REDIRECT_URI
tells Auth0 what URL to use while redirecting the user back after successful authentication, e.g. http://localhost:3000/auth/callback
. Note: your application needs to handle this endpoint and call the SDK's complete_interactive_login(url: string)
to finish the authentication process. See below for more information.
The AUTH0_SECRET
is the key used to encrypt the session and transaction cookies. You can generate a secret using openssl
:
openssl rand -hex 64
3. Add login to your Application (interactive)
Before using redirect-based login, ensure the redirect_uri
is configured when initializing the SDK:
auth0 = ServerClient(
# ...
redirect_uri='<AUTH0_REDIRECT_URI>',
# ...
)
[!IMPORTANT]
You will need to register theAUTH0_REDIRECT_URI
in your Auth0 Application as an Allowed Callback URLs via the Auth0 Dashboard.
In order to add login to any application, call start_interactive_login()
, and redirect the user to the returned URL.
The implementation will vary based on the framework being used, but here is an example of what this would look like in FastAPI:
from fastapi import FastAPI, Request, Response
from starlette.responses import RedirectResponse
app = FastAPI()
@app.get("/auth/login")
async def login(request: Request):
authorization_url = await auth0.start_interactive_login()
return RedirectResponse(url=authorization_url)
Once the user has successfully authenticated, Auth0 will redirect the user back to the provided redirect_uri
which needs to be handled in the application.
This implementation will also vary based on the framework used, but what needs to happen is:
- register an endpoint that will handle the configured
redirect_uri
. - call the SDK's
complete_interactive_login(url)
, passing it the full URL, including query parameters.
Here is an example of what this would look like in FastAPI, with redirect_uri
configured as http://localhost:3000/auth/callback
:
@app.get("/auth/callback")
async def callback(request: Request):
result = await auth0.complete_interactive_login(str(request.url))
# Store session or set cookies as needed
return RedirectResponse(url="/")
Feedback
Contributing
We appreciate feedback and contribution to this repo! Before you get started, please read the following:
- Auth0's general contribution guidelines
- Auth0's code of conduct guidelines
- This repo's contribution guide
Raise an issue
To provide feedback or report a bug, please raise an issue on our issue tracker.
Vulnerability Reporting
Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.
What is Auth0?
Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?
This project is licensed under the MIT license. See the LICENSE file for more info.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file auth0_server_python-1.0.0b3.tar.gz
.
File metadata
- Download URL: auth0_server_python-1.0.0b3.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | edbe31582d41137980fe6d0b4a82ec49ef281d2faeeaf448c9df88bdde9f9a25 |
|
MD5 | eb567a0ed8d13f9dae3497c048a15eb7 |
|
BLAKE2b-256 | 737133e5726e919c8bb2abee6bf70f77043a6528e0fb3885f0401cdf1763073e |
File details
Details for the file auth0_server_python-1.0.0b3-py3-none-any.whl
.
File metadata
- Download URL: auth0_server_python-1.0.0b3-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff1738082fe5d056c995bb9f5ba0760b14d34591af8e4ba5cc85ddfca8403548 |
|
MD5 | 69396ce65b58378280ac299504fd3f4e |
|
BLAKE2b-256 | ea4b6470a3823d33de8b3b402696af272d03bc4d8271aeeb89aec390ae234732 |