Native or SPA Tutorial with PKCE in Auth0

Setup a new web project in the Auth0 Dashboard, (application type: Native application or Single Page Web Application)_

Note this sample is valid for any Identity Providers supporting OAuth2.0 Authorization Code with PKCE.

When you have obtained a client_id, and registered a callback URL then you can try out the command line interactive example below.

client_id = 'OAUTH_CLIENT_ID'

authorization_base_url = "https://OAUTH_IDP_DOMAIN/authorize"
token_url = "https://OAUTH_IDP_DOMAIN/oauth/token"
scope = ["openid"]

from requests_oauthlib import OAuth2Session
redirect_uri = 'http://localhost:8080/callback'

session = OAuth2Session(client_id, scope=scope, redirect_uri=redirect_uri, pkce="S256")
authorization_url, state = session.authorization_url(authorization_base_url,access_type="offline")

print("Please go here and authorize:")

redirect_response = input('Paste the full redirect URL here: ')

token = session.fetch_token(token_url, authorization_response=redirect_response, include_client_id=True)