Server-side authentication is mostly used with SDKs, for server-side languages such as Java, Node.js, Ruby, and so on. Server-side authentication uses admin APIs, and can also be referred to as admin authentication flow.
Client-side SDKs, such as iOS, Android, and JavaScript, use client-side authentication flow.
Custom authentication flow uses custom Lambdas that get triggered during various life cycle stages of the authentication.