Crossid is an OAuth2 / OIDC client for single page application (SPA) with support for PKCE extension.