Design Authentication/Authorization Service which supports(otp,OAuth, etc.).
MediumThe core challenge is to design a robust and extensible Authentication and Authorization service. This service needs to support multiple authentication methods (like username/password, OTP, OAuth) and provide a flexible authorization mechanism to control access to resources. This requires a well-defined class structure, adherence to SOLID principles, and proper handling of concurrency. The service should be designed to accommodate new authentication methods and authorization policies without requiring significant code changes. Imagine you are building a security layer for a sophisticated platform where different clients need different authentication and authorization workflows.
Requirements
Interview Simulation
Experience a realistic interview conversation. The interviewer will ask clarifying questions,and you'll reveal your understanding of the requirements.
Let's start by understanding the scope. What are the core functionalities this system needs to provide?
💡 Interview Tip
Identify the Actors (Who uses the system?) and their Use Cases (What are they trying to achieve?). Start with the 'Happy Path' scenarios.