A Spark-powered authentication application supporting multiple identity providers.
Since CILogon is registered to redirect to https://lmarinve.github.io/multi-provider-authe/auth/callback/cilogon, you must deploy this to GitHub Pages:
-
Enable GitHub Pages:
- Go to your repository Settings → Pages
- Source: Deploy from a branch
- Branch:
main(or your main branch) - Folder:
/ (root) - Click Save
-
Wait for deployment:
- GitHub will build and deploy your site
- Look for the green "Your site is published at..." message
- URL should be:
https://lmarinve.github.io/multi-provider-authe/
-
Verify deployment:
- Visit:
https://lmarinve.github.io/multi-provider-authe/test-deployment.html - This will show your deployment status and test callback access
- Visit:
npm install
npm run devImportant: Even in development, CILogon authentication will redirect to the GitHub Pages URL because that's where the client is registered.
- Client ID:
cilogon:/client_id/e33e29a20f84e0edd144d1e9a6e2b0 - Redirect URI:
https://lmarinve.github.io/multi-provider-authe/auth/callback/cilogon - Flow: OAuth 2.0 with PKCE (S256)
- Scope:
openid(strict scopes enabled)
- Client ID:
APP-S3BU1LVHOTHITEU2 - Flow: OAuth 2.0 with PKCE
- Scope:
/authenticate
- Base URL:
https://cm.fabric-testbed.net - Project: AtlanticWave-SDX
- Dependencies: Requires valid CILogon token
src/
├── components/
│ ├── pages/ # Main page components
│ └── ui/ # shadcn/ui components
├── lib/
│ ├── providers/ # Auth provider implementations
│ ├── config.ts # App configuration
│ └── token-storage.ts # Token management
└── assets/
└── images/ # Logo and other images
public/
├── auth/
│ └── callback/ # OAuth callback pages
│ ├── cilogon/
│ │ └── index.html
│ ├── orcid.html
│ └── cilogon.html
└── test-deployment.html # Deployment verification
Main configuration is in src/lib/config.ts. All environment-specific settings are handled there.
- Make sure GitHub Pages is enabled in your repository settings
- Verify the site is published and accessible
- Check that the callback URL matches exactly:
https://lmarinve.github.io/multi-provider-authe/auth/callback/cilogon
- This happens when the
code_verifierdoesn't match thecode_challenge - The app uses state-based storage to handle this correctly
- Check browser console for detailed PKCE debug information
- The callback page handles cross-origin scenarios by storing verifiers in both sessionStorage and localStorage
- Authentication can be started from development but will redirect to GitHub Pages for the callback
MIT License - Copyright GitHub, Inc.