fix: referral system — stop cabinet redirect to Telegram, fix deep link code handling

- Remove redirect to Telegram bot when email auth disabled + referral code present
  (cabinet links should stay on cabinet, bot links should go to bot)
- Remove referral_code from deep link auth (existing users can't get referrals)
- Don't consume referralCode in deep link path — leave it in localStorage for
  OIDC/widget auth methods that actually send it to the backend
- Consume campaign slug once into ref to survive retries (codesConsumedRef pattern)
- Update loginWithDeepLink to only accept (token, campaignSlug) — no referralCode
- Update pollDeepLinkToken API to match backend schema change
This commit is contained in:
Fringg
2026-03-21 15:06:16 +03:00
parent a87085e2b2
commit 3c034d2e70
4 changed files with 24 additions and 17 deletions

View File

@@ -290,7 +290,7 @@ export const authApi = {
return response.data;
},
pollDeepLinkToken: async (token: string): Promise<AuthResponse> => {
pollDeepLinkToken: async (token: string, campaignSlug?: string | null): Promise<AuthResponse> => {
// validateStatus: only treat 200 as success.
// Server returns 202 for "pending" and 410 for "expired" —
// these must reject so the polling catch-block can handle them.
@@ -299,7 +299,7 @@ export const authApi = {
// which triggers checkAdminStatus() → 401 → safeRedirectToLogin() → infinite reload.
const response = await apiClient.post<AuthResponse>(
'/cabinet/auth/deeplink/poll',
{ token },
{ token, campaign_slug: campaignSlug || undefined },
{ validateStatus: (status) => status === 200 },
);
return response.data;