Thunder v0.0.1
Pre-releaseWSO2 Thunder ⚡
The Lighting Fast Identity Management Suite
Project Thunder is a modern, identity management service by WSO2. It empowers you to design tailored login, registration, and recovery flows using a flexible identity flow designer.
Thunder secures users, applications, services, and AI agents by managing their identities and offering a complete suite of supporting capabilities.
Designed for extensibility, scalability, and seamless containerized deployment, Thunder integrates naturally with microservices and DevOps environments—serving as the core identity layer for your cloud platform.
🚀 Features
- ✅ Standards-Based
- OAuth 2/ OpenID Connect (OIDC): Authorization Code, Client Credentials
- 🔗 Login Options: Basic Authentication, Login with GitHub
- 🌐 RESTful APIs: User Management, Application Management
⚡ Quickstart
✅ Prerequisites
- Node.js 14+
Step 1: Download the distribution from the latest release
Download thunder-<version>.zip from the latest release.
Step 2: Unzip and start the product
unzip thunder-v0.0.1.zip
cd thunder-v0.0.1/
sh start.shStep 3: Tryout the product
1️⃣ Try Out Client Credentials Flow
curl -k -X POST https://localhost:8090/oauth2/token \
-d 'grant_type=client_credentials' \
-u 'client123:secret123'2️⃣ Try Out Authorization Code Flow
-
Open the following URL in your browser:
https://localhost:8090/oauth2/authorize?response_type=code&client_id=client123&redirect_uri=https://localhost:3000&scope=openid&state=state_1
-
Enter the following credentials:
-
Username:
thor -
Password:
thor123Note: The credentials can be configured in the
repository/conf/deployment.yamlfile under theuser_storesection.
-
-
After successful authentication, you will be redirected to the redirect URI with the authorization code and state.
https://localhost:3000/?code=<code>&state=state_1
-
Copy the authorization code and exchange it for an access token using the following cURL command:
curl -k -X POST 'https://localhost:8090/oauth2/token' \ -u 'client123:secret123' \ -d 'grant_type=authorization_code' \ -d 'redirect_uri=https://localhost:3000' \ -d 'code=<code>'
- Client ID:
client123 - Client Secret:
secret123
- Client ID:
3️⃣ Configure Login with GitHub
-
Create an OAuth application in your Github account following the instructions given in the Github documentation.
- Configure the urls as follows:
- Homepage URL:
https://localhost:8090 - Authorization callback URL:
https://localhost:8090/flow/authn
- Homepage URL:
- Copy the Client ID and Client Secret.
- Configure the urls as follows:
-
Open the deployment.yaml file in the
backend/cmd/server/repository/confdirectory and add the following configurations:authenticator: default: "GithubAuthenticator" authenticators: - name: "GithubAuthenticator" type: "federated" display_name: "Github" description: "Login with Github" client_id: "<client_id>" client_secret: "<client_secret>" redirect_uri: "https://localhost:8090/flow/authn" scopes: - "user:email" - "read:user" additional_params: # Optional parameters. prompt: "select_account"
-
Restart the server.
License
Licenses this source under the Apache License, Version 2.0 (LICENSE), You may not use this file except in compliance with the License.
(c) Copyright 2025 WSO2 LLC.