¿Cuáles son las mejores prácticas para implementar un inicio de sesión multifactor?

Lo que hago es usar OAuth para obtener autorización para hacer una llamada a la API para recuperar la dirección de correo electrónico del usuario y convertirla en una clave de las cuentas.

Por lo tanto, siempre se crea una cuenta regular si el usuario se registra en Facebook o en cualquier otro servidor OAuth.

Más tarde, el usuario puede iniciar sesión utilizando la cuenta de ese correo electrónico o un servidor OAuth en el que la dirección de correo electrónico principal es la misma.

Esto significa que los sitios como Twitter y Yahoo no se pueden usar con OAuth para iniciar sesión porque su API no revela la dirección de correo electrónico del usuario. Para Yahoo utilizo OpenID en lugar de OAuth, de modo que puedo obtener la dirección de correo electrónico del usuario de todos modos.

Estoy usando esta biblioteca PHP OAuth para registrar / iniciar sesión con cuentas basadas en OAuth en muchos sitios de Facebook, Google, Microsoft, etc. Proporciona una API común a todos los servidores OAuth, independientemente de la versión del protocolo OAuth que utilicen.

PHP OAuth API, autorizar y acceder a las API utilizando OAuth

Para OpenID utilicé otra biblioteca propia. Todavía no lo he publicado, pero puedo publicarlo pronto si hay suficiente interés. Sólo házmelo saber.

Puede implementar el mejor inicio de sesión único multifactor utilizando softex, las mejores soluciones de inicio de sesión único preferidas por la mayoría de las empresas.