feat add some for users in iam
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { envOr, envOrNull } from '../../common/env';
|
||||
import { envList, envOr, envOrNull } from '../../common/env';
|
||||
|
||||
/**
|
||||
* Credential delegation to the central identity service (Central IAM).
|
||||
@@ -115,7 +115,7 @@ export class IamService {
|
||||
if (tenantId) body.tenant_id = tenantId;
|
||||
else if (tenantSlug) body.tenant_slug = tenantSlug;
|
||||
if (clientIp) body.client_ip = clientIp;
|
||||
const returnTo = envOrNull('IAM_ADMIN_BROWSER_RETURN_URL') || envOrNull('IAM_BROWSER_RETURN_URL');
|
||||
const returnTo = this.adminBrowserReturnUrl();
|
||||
if (returnTo) body.return_to = returnTo;
|
||||
|
||||
const timeout = Number(envOr('IAM_HTTP_TIMEOUT_MS', '8000'));
|
||||
@@ -203,7 +203,7 @@ export class IamService {
|
||||
else if (tenantSlug) body.tenant_slug = tenantSlug;
|
||||
if (clientIp) body.client_ip = clientIp;
|
||||
if (factorReference) body.factor_reference = factorReference;
|
||||
const returnTo = envOrNull('IAM_BROWSER_RETURN_URL');
|
||||
const returnTo = this.customerBrowserReturnUrl();
|
||||
if (returnTo) body.return_to = returnTo;
|
||||
|
||||
const timeout = Number(envOr('IAM_HTTP_TIMEOUT_MS', '8000'));
|
||||
@@ -254,6 +254,29 @@ export class IamService {
|
||||
throw new IamUnavailableError(`identity service returned ${response.status}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* مقصد بلیت مرورگر. خروج از فهرست گستردهتری استفاده میکند؛ اگر ورود فقط
|
||||
* `IAM_BROWSER_RETURN_URL` را ببیند و آن خالی باشد، کوکی مشترک گذاشته نمیشود
|
||||
* و فقط خروج به IAM میرود.
|
||||
*/
|
||||
private customerBrowserReturnUrl(): string | null {
|
||||
return (
|
||||
envOrNull('IAM_BROWSER_RETURN_URL') ||
|
||||
envOrNull('IAM_POST_LOGOUT_REDIRECT_URI') ||
|
||||
envList('IAM_ALLOWED_RETURN_URLS')[0] ||
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
private adminBrowserReturnUrl(): string | null {
|
||||
return (
|
||||
envOrNull('IAM_ADMIN_BROWSER_RETURN_URL') ||
|
||||
envOrNull('IAM_ADMIN_POST_LOGOUT_REDIRECT_URI') ||
|
||||
envList('IAM_ADMIN_ALLOWED_RETURN_URLS')[0] ||
|
||||
this.customerBrowserReturnUrl()
|
||||
);
|
||||
}
|
||||
|
||||
browserBootstrapUrl(ticket: string | null | undefined): string | null {
|
||||
if (!ticket || !this.issuer) return null;
|
||||
return `${this.issuer}/auth/bootstrap?ticket=${encodeURIComponent(ticket)}`;
|
||||
|
||||
Reference in New Issue
Block a user