The main purpose of web applications is to allow users to access and process information that is stored in a remote place. Sometimes this information is public, while at other times it may be user-specific or even confidential. Such applications require the users to prove their identity before being allowed access to such information. This identity verification process is called authentication, and it requires the user to provide a proof of identity that may be one or more of the following:
- Something the user knows: Such as a username and secret password
- Something the user has: Like a smart card or a special code sent to the user's phone
- Something the user is: Voice, facial, fingerprint, or any other biometric mechanism
The first alternative is the most common in web applications. There are some cases, such as banking or internal...