Back to the Carter-Cash experience

Carter-Cash

Customer Identity & Authentication

01 / 5

OPERATIONAL OWNERSHIP & DIAGNOSIS

Becoming the point person for an existing system

Taking responsibility for an existing service until becoming the team’s point person when issues arose

Auth0 was already handling customer authentication when I joined the project. I had not taken part in its initial implementation, but account and sign-in incidents gradually led me to work in this area on a regular basis.

I used the Auth0 console to inspect identities, diagnose access issues, and help users regain access. By repeatedly handling these requests and connecting the service’s behavior with the Symfony application, I became the team’s operational point person for Auth0.

  • Auth0
  • Diagnosis
  • Production support

02 / 5

PROJECT TAKEOVER

Taking over and completing the Symfony integration

Turning an incomplete first integration into a foundation ready to replace the legacy authentication flow

Following several security initiatives, the team decided to integrate Auth0’s official Symfony bundle. Another developer had started the work, but their departure left an initial version that was incomplete and only partly adapted to the site.

I took over that foundation, identified the remaining journeys and edge cases, and adapted the integration to the existing application. I completed the missing pieces, removed legacy mechanisms that were no longer needed, and brought the work to a final version ready for deployment.

  • Symfony
  • Auth0
  • Project takeover

03 / 5

SECURITY & CUSTOMER JOURNEY

Securing account creation and lifecycle

Strengthening security without turning every new rule into friction for existing customers

Adding an authentication security rule never affected sign-in alone. Account verification, for example, could also affect existing customers, the post-registration journey, error messages, and the ability to resend required communications.

I assessed these impacts and documented the business decisions required before new protections could be enabled. I then developed the Auth0 Actions and triggers, along with the Symfony endpoints needed for the selected registration checks. I also adapted session and logout handling to maintain a consistent lifecycle between Auth0 and the application.

  • Security
  • Auth0 Actions
  • Account lifecycle

04 / 5

MIGRATION & DATA INTEGRITY

Merging identities without losing their history

Merging duplicate accounts while preserving orders, carts, and relevant customer data

The authentication evolution required handling customers who had several accounts for the same identity. Simply deleting one could remove part of their history or leave inconsistent relationships between the application and Auth0.

I designed and built a process that detects duplicates, selects the primary account based on activity, and transfers its related orders, carts, addresses, vehicles, and relevant preferences. Accounts that are no longer needed are then removed locally and from Auth0 where required. Locks, execution limits, dedicated logs, and summaries make each merge controllable.

  • Symfony Console
  • Migration
  • Data integrity

05 / 5

TECHNICAL IMPLEMENTATION

Integrating Auth0 without disrupting the customer journey

Replacing the legacy authentication flow affected sign-in, registration, sessions, and existing accounts. The integration therefore had to combine the Auth0 bundle with Carter-Cash-specific rules and support a controlled cutover

  • Symfony Security
  • Auth0
  • Doctrine

Symfony authentication

The bundle integrates with the Security component through providers, an authenticator, an entry point, and dedicated subscribers. I adapted these components to the application’s different profiles and existing journeys, then removed legacy mechanisms that were no longer needed.

Auth0 lifecycle

Auth0 Actions and triggers communicate with Symfony controllers to apply the required checks during registration. Logout, session, and identifier management were also adapted to keep Auth0 and the application in a consistent state.

Account migration

A Symfony command uses Doctrine and the Auth0 API to merge duplicate accounts, transfer related data, and delete identities that are no longer needed. Locks, execution limits, and dedicated logs protect the operation.

Production release

I was directly involved in the production rollout during a planned window designed to limit customer impact. The new Auth0 foundation, required Actions, and account merge were verified before the full journey was reopened.

  • Symfony Security
  • Auth0
  • Doctrine
  • Console
  • Actions
  • Monolog
  • Sessions