asgardeo / asgardeo/javascript

feat: support for organization discovery strategies

Open
#124 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
18
Forks
67
Avg merge
4h 6m
Merged PRs (30d)
13

Description

### Problem

Currently, Asgardeo SDK users need to manually specify the `organizationHandle` in their configuration when implementing B2B authentication flows. This creates several challenges:

1. **Manual Configuration**: Developers must hardcode organization handles or implement custom logic to extract them from URLs
2. **Limited URL Support**: No built-in support for common B2B URL patterns like:
- Path-based: `/o/{orgHandle}` or `/o/{orgId}`
- Query-based: `/?o={orgHandle}` or `/?o={orgId}`
- Subdomain-based: `{orgHandle}.example.com`
3. **Repetitive Implementation**: Each application needs to implement similar organization extraction logic
4. **Error-Prone**: Manual extraction is susceptible to bugs and inconsistencies across applications

### Proposed Solution

Implement automatic **Organization Discovery Strategies** that can extract organization handles from URLs and automatically inject them into authentication requests as `signInOptions={{ fidp: 'OrganizationSSO', orgId: '' }}`.

**URL Path Strategy** (`urlPath`):

- Extracts from patterns: `/o/{handle}`, `/o/{id}`
- Example: `https://app.com/o/acme-corp` → `acme-corp`

**URL Query Strategy** (`urlQuery`):

- Extracts from query parameters: `?o={handle}`, `?org={handle}`
- Example: `https://app.com/?o=acme-corp` → `acme-corp`

**Subdomain Strategy** (`subdomain`):

- Extracts from subdomain patterns: `{handle}.domain.com`
- Example: `https://acme-corp.app.com` → `acme-corp`

**Base URL Strategy** (`baseUrl`):

- Extracts from the configured baseUrl pattern
- Example: `baseUrl: "https://api.asgardeo.io/t/acme-corp"` → `acme-corp`

### Alternatives

_No response_

### Please select the package issue is related to

@asgardeo/express, @asgardeo/javascript

### Version

0.1.12

### Reporter Checklist

- [x] I have searched the existing issues and this is not a duplicate.
- [x] I have provided all the necessary information.
- [x] I have verified the feature on the latest version of the package.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.