1. A method, implemented by a client computing system programmed to perform the following, comprising: receiving, by the client computing system, a user login request; identifying, by the client computing system, a plurality of chains of authentication modules to be performed prior to allowing a user to login, each of the plurality of chains being associated with a chain manager, one or more of the plurality of chains having a plurality of authentication modules; determining, by the client computing system, dependencies between chain managers; invoking the chain managers in the order defined by the dependencies, the chain managers facilitating execution of respective chains of authentication modules; and responding to the user login request based on execution results of the authentication modules.