Configuration reference
The bundle is configured under the derafu_identity: key. All values
have sensible defaults — most apps need zero configuration.
# config/packages/derafu_identity.yaml (only needed for overrides)
derafu_identity:
# ── Entity classes ──────────────────────────────────────────────
# FQCN of the concrete entity for each base. Defaults follow the
# convention App\Entity\Auth\{Name}.
user_class: App\Entity\Auth\User
organization_class: App\Entity\Auth\Organization
role_class: App\Entity\Auth\Role
permission_class: App\Entity\Auth\Permission
user_role_class: App\Entity\Auth\UserRole
role_permission_class: App\Entity\Auth\RolePermission
verification_token_class: App\Entity\Auth\VerificationToken
organization_membership_class: App\Entity\Auth\OrganizationMembership
organization_invitation_class: App\Entity\Auth\OrganizationInvitation
api_key_class: App\Entity\Auth\ApiKey
login_record_class: App\Entity\Auth\LoginRecord
# ── Invitation TTL ──────────────────────────────────────────────
# How long an organization invitation stays valid (seconds).
invitation_ttl: 604800 # 7 days
# ── Sudo mode ───────────────────────────────────────────────────
# Seconds after login/password-confirm before sudo mode expires.
sudo_ttl: 900 # 15 minutes
# ── Account lockout ─────────────────────────────────────────────
lockout_max_attempts: 5 # lock after 5 failures
lockout_duration: 1800 # lock for 30 minutes
# ── Verification token TTLs ─────────────────────────────────────
# Per-type TTL for one-use verification tokens (seconds).
# Minimum 60 seconds for all.
verification_ttl:
email_verify: 86400 # 1 day
password_reset: 3600 # 1 hour
email_change: 86400 # 1 day
magic_link: 900 # 15 minutes
Container parameters
Every config value is exposed as a container parameter for injection into custom services:
| Parameter | Example value |
|---|---|
derafu_identity_bundle.user_class |
App\Entity\Auth\User |
derafu_identity_bundle.organization_class |
App\Entity\Auth\Organization |
derafu_identity_bundle.invitation_ttl |
604800 |
derafu_identity_bundle.verification_ttl.email_verify |
86400 |
derafu_identity_bundle.verification_ttl.password_reset |
3600 |
derafu_identity_bundle.verification_ttl.email_change |
86400 |
| … (one per entity class and TTL) |
Service aliases
The bundle aliases every service interface to its default implementation. Type-hint the interface in your constructors:
public function __construct(
private readonly RegistrarInterface $registrar,
private readonly PermissionCheckerInterface $checker,
private readonly OrganizationManagerInterface $orgManager,
private readonly InvitationManagerInterface $invitations,
private readonly OrganizationContextInterface $orgContext,
) {}
To swap an implementation, bind your service to the interface in
services.yaml:
services:
Derafu\IdentityBundle\Contract\Service\PermissionCheckerInterface:
alias: App\Service\CachingPermissionChecker
On this page
Last updated on 16/04/2026
by Anonymous