API de usuarios para servicios agrupados en paquetes heredados

La API de usuarios le permite a una aplicación:

  • Detectar si el usuario actual ha accedido
  • Redireccionar al usuario a la página de acceso correcta
  • Solicitar que el usuario de tu aplicación cree una Cuenta de Google nueva si aún no lo ha hecho

Cuando un usuario accede a la app, esta puede acceder a la dirección de correo electrónico del usuario. La aplicación también puede detectar si el usuario actual es un administrador (o “usuario admin”), lo que facilita la implementación de áreas exclusivas para administradores.

Autenticación de usuarios en PHP 5

En el siguiente ejemplo, se recibe a un usuario que accedió a la aplicación con un mensaje personalizado y un vínculo para salir. Si el usuario no accedió, la aplicación le ofrece un vínculo a la página de acceso de Cuentas de Google.

Primero, incluye la clase UserService en la parte superior de tu archivo:

use google\appengine\api\users\UserService;
A continuación, llama al servicio de usuarios para obtener información sobre el usuario actual como se muestra a continuación:
$user = UserService::getCurrentUser();

if (isset($user)) {
    return sprintf('Welcome, %s! (<a href="%s">sign out</a>)',
        $user->getNickname(),
        UserService::createLogoutUrl('/'));
} else {
    return sprintf('<a href="%s">Sign in or register</a>',
        UserService::createLoginUrl('/'));
}

Aplica el ingreso y el acceso de administrador con app.yaml

Si tienes páginas que requieren que el usuario haya iniciado sesión para poder acceder, puedes aplicarlas en tu archivo app.yaml. Si un usuario accede a una URL configurada para requerir que el usuario haya accedido, pero el usuario no accedió, App Engine lo redirecciona a la página de acceso de Google adecuada y, cuando accede o se registra de forma correcta, lo dirige de nuevo a la URL de tu app.

La configuración del controlador también puede requerir que el usuario sea un administrador registrado de la aplicación; es decir, el usuario debe tener la función de visualizador, editor, propietario o administrador de App Engine. Esto facilita la compilación de secciones del sitio exclusivas para administradores, sin tener que implementar un mecanismo de autorización separado.

Si quieres obtener información para configurar la autenticación de URL, consulta cómo solicitar el estado de acceso o de administrador en la referencia de app.yaml.

Opciones de autenticación

Tu app puede autenticar usuarios con una de estas opciones:

  • Una Cuenta de Google
  • Una cuenta en tu dominio de Google Workspace

Elige una opción de autenticación

Después de crear tu app, puedes elegir la opción de autenticación que quieres usar. Según la configuración predeterminada, la app usará Cuentas de Google para la autenticación. Si deseas elegir otra opción, como un dominio de Google Workspace, ve a la página Configuración de tu proyecto en la consola de Google Cloud y haz clic en Editar. En el menú desplegable Autenticación de Google, selecciona el tipo de autenticación deseado y haz clic en Guardar.

Acceso y salida

Una aplicación puede detectar si un usuario accedió a tu app con la opción de autenticación que elegiste para ella. Si el usuario no accedió, la app puede dirigirlo a Cuentas de Google para que acceda o cree una nueva Cuenta de Google. La app obtiene la URL de la página de acceso mediante una llamada a un método de la API de usuarios. La app puede mostrar esta URL como un vínculo o puede emitir un redireccionamiento HTTP a la URL cuando el usuario visita una página que requiere autenticación.

Si tu app usa Cuentas de Google o Google Workspace para la autenticación, su nombre aparece en la página de acceso cuando el usuario accede a la aplicación. El nombre que aparece es el nombre de aplicación que especificaste cuando la registraste. Puedes cambiar este nombre en el campo Nombre de la aplicación de la página Credenciales de la consola de Google Cloud.

Una vez que el usuario accede o crea una Cuenta de Google, se lo redirecciona de vuelta a tu aplicación. La app proporciona la URL de redireccionamiento al método que genera la URL de acceso.

La API de usuarios incluye un método para generar una URL a fin de salir de la app. La URL de cierre de sesión anula la autenticación del usuario de la app y, luego, lo redirecciona a la URL de la app sin mostrar nada.

Un usuario no accede a una app hasta que esta le solicita que lo haga y, en ese momento, el usuario debe ingresar la dirección de correo electrónico de su cuenta y la contraseña. Esto se aplica incluso si el usuario ha accedido a otras aplicaciones mediante su Cuenta de Google.

Accede a la información de la cuenta

Una vez que un usuario accedió a una app, esta puede acceder a la dirección de correo electrónico de la cuenta para cada solicitud que el usuario haga a la app. La app también puede acceder a un ID de usuario que identifica al usuario de forma exclusiva, incluso si este cambia la dirección de correo electrónico de su cuenta.

La app también puede determinar si el usuario actual es un administrador de la app. Un usuario admin es todo usuario que tenga la función de visualizador, editor, propietario o administrador de App Engine. Puedes usar esta característica para compilar características administrativas en la app, incluso si no autenticas a otros usuarios. Las API de Go, Java, PHP y Python facilitan la configuración de URL en modo “exclusivo para administradores”.

Cuentas de Google y servidor de desarrollo

El servidor de desarrollo simula el sistema de Cuentas de Google mediante una pantalla de acceso ficticia. Cuando tu aplicación llama a la API de usuarios para obtener la URL de la página de acceso, la API muestra la URL de un servidor de desarrollo especial que solicita una dirección de correo electrónico, pero no la contraseña. Puedes ingresar cualquier dirección de correo electrónico y la app se comportará como si hubieses accedido con una cuenta asociada a esa dirección.

La pantalla de acceso ficticia también incluye una casilla de verificación que indica si la cuenta ficticia es un administrador; es decir, si la cuenta tiene la función de visualizador, editor, propietario o administrador de App Engine. Si marcas esta casilla, la app se comportará como si hubieses accedido con una cuenta de administrador.

Del mismo modo, la API de usuarios muestra una URL de cierre de sesión que cancela el acceso ficticio.

El ID único para un objeto de usuario en el servidor de desarrollo se calcula a partir de la dirección de correo electrónico. Dos direcciones de correo electrónico únicas siempre representan dos usuarios únicos en el servidor de desarrollo.