Yash Verma
12/18/2025, 9:02 AMcode in the query parameters.
6. The Descope Web SDK onSuccess() callback is triggered.
7. We generate a refresh token using Descope Web SDK and send it to our backend to retrieve user details.
This flow worked correctly when tokens were returned in the SDK response.
3. Silent Login Requirement and Session Management Change
To support silent login (i.e., automatically authenticating users who already have an active Descope session), we enabled the following setting:
• Session and refresh tokens are managed in cookies (via Project → Session Management settings).
After enabling cookie-based session management:
• The refresh token is no longer returned in the SDK response body.
• As a result, our original frontend-driven login flow stopped working.
4. Updated Login Approach (Backend-Driven Code Exchange)
To adapt to cookie-based sessions, we modified the flow as follows:
We configure the redirect URL in the Descope Web SDK to point directly to our backend.
After successful social login, Descope redirects the user to our backend callback URL with an authorization code.
1. The backend exchanges the code for tokens.
2. On success, the backend redirects the user back to the TenantPay frontend login page.
Issue Observed
In this approach, the DS and DSR cookies are not being set on <http://api.descope.com|api.descope.com>, which prevents silent login from working in downstream flows.
5. Equifax SSO Flow (OIDC Federated App)
TenantPay users can access Equifax via SSO using OIDC, implemented through a Descope Federated App.
Flow Details
1. The user logs in to TenantPay.
2. The user is redirected to the TenantPay dashboard.
3. The dashboard contains an iframe.
4. The iframe loads an Equifax URL.
5. Equifax redirects the user to the Descope Federated App authorization endpoint.
6. Because this flow runs inside an iframe, we have self-hosted the following repository: https://github.com/descope/auth-hosting
7. A Descope flow (designed by us called federated-login) is shown.
8. This step is skipped if the user already has valid DS / DSR cookies on <http://api.descope.com|api.descope.com>, which is the desired behavior since we cannot display the Descope UI inside an iframe.
9. After successful authentication (silent or manual), Descope redirects the user back to the Equifax redirect URL with an authorization code.
10. Equifax exchanges the code for tokens.
11. Equifax validates the id_token using Descope’s public JWT keys and renders user details inside the iframe.
6. Expected Behavior
• A user logs in or signs up on TenantPay using:
◦ Email/password, or
◦ Social login (e.g., Google).
• After successful login: Session cookies (DS and DSR) should be set on the Descope domain (<http://api.descope.com|api.descope.com>).
• The user navigates to the TenantPay dashboard.
• The dashboard iframe loads.
• The iframe redirects to Equifax.
• Equifax redirects to the Descope Federated App authorization URL.
• Since the user has an active Descope session:
◦ Descope should silently authenticate the user.
◦ Descope should immediately redirect back to the Equifax redirect URL with an authorization code.
• Equifax exchanges the code for tokens, validates the JWT, and completes rendering inside the iframe.
The silent redirect from Descope back to Equifax is the most critical requirement.
7. Key Configuration Details
• Session and refresh tokens are managed in cookies.
• Equifax integration uses a Descope Federated App (OIDC).
• Authentication must work inside an iframe, requiring silent login support.
8. Assistance Requested
We would appreciate your guidance on the following:
1. Does our initial TenantPay login flow need to be adjusted to properly support cookie-based session management and downstream silent SSO?
2. How can we ensure that silent login works reliably, especially for social logins, so that DS / DSR cookies are correctly established on <http://api.descope.com|api.descope.com> and reused by the Federated App flow?
Thank you for your support. Please let us know if any additional information or logs would be helpful.
Best regards,
Yash VermaAtharva Joshi
12/18/2025, 9:48 AMYash Verma
12/18/2025, 10:32 AMAtharva Joshi
12/18/2025, 10:45 AMAtharva Joshi
12/18/2025, 10:52 AMYash Verma
12/18/2025, 11:00 AMAtharva Joshi
12/18/2025, 11:15 AMYash Verma
12/18/2025, 12:53 PMYash Verma
12/31/2025, 10:14 AMAtharva Joshi
12/31/2025, 11:06 AMpromt='none' in the end.
Refer DocYash Verma
01/02/2026, 9:49 AMAtharva Joshi
01/02/2026, 11:50 AMAtharva Joshi
01/02/2026, 2:04 PM