Skip to content

Thunder v0.0.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 May 17:31
· 3898 commits to main since this release
32cb498

WSO2 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.sh

Step 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: thor123

      Note: The credentials can be configured in the repository/conf/deployment.yaml file under the user_store section.

  • 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

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
    • Copy the Client ID and Client Secret.
  • Open the deployment.yaml file in the backend/cmd/server/repository/conf directory 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.