Manual:Cómo depurar/Problemas de inicio de sesión

From mediawiki.org
This page is a translated version of the page Manual:How to debug/Login problems and the translation is 93% complete.
Other languages:

Los problemas de inicio de sesión(como no poder iniciar sesión, cerrar sesión de inmediato, cerrar sesión aleatoriamente, no poder editar debido a errores de "pérdida de datos de sesión") pueden ser causados por una gran variedad de cosas, que hace que depurarlos sea difícil.

Cuando se investiga o se reportan errores, aquí hay algunos consejos.

  • Intenta recolectar información sobre varios aspectos del error:
    • ¿Persiste luego de borrar las cookies del dominio del wiki? ¿Cuando se inicia sesión usando el modo incógnito? ¿Cuando se inicia sesión en un navegador diferente?
    • Si usas bloqueadores de anuncios o complementos de privacidad del navegador, ¿están bloqueando algo? ¿Funciona si los desactivas?
    • ¿Afecta a todas tus cuentas de usuario o sólo a una?
    • ¿La opción "recuérdame" hace alguna diferencia? (Limpia las cookies antes de cualquier intento.)
    • Si los problemas pasan en un wiki de Wikimedia, intenta iniciar sesión en otro otro wiki, preferiblemente uno que no comparta un nombre de dominio de segundo nivel (si los problemas pasan en xy.wikipedia.org, intenta por ejemplo en xy.wiktionary.org).
    • Si los problemas pasan en tu propio wiki, ¿qué versión de MediaWiki usas? (Session and login handling has been fully rewritten in 1.27.) Antes de la 1.27, checa el valor de $wgSessionsInObjectCache ; si es falso, prueba que tu manejo de sesión de PHP está funcionando (p. ej. que session.save_path es editable). Si es verdadero, ve qué proveedores de sesiones (subclases SessionProvider) estás usando.
  • If the problems are happening on your own wiki, check what session backend is being used ($wgSessionCacheType ), and make sure it works (data is actually persisted between requests). La configuración más segura es $wgSessionCacheType = CACHE_DB;. Si no estás seguro de cómo está configurado, añade esta configuración al final de tu LocalSettings.php.
  • Por favor no reúses reportes de errores viejos a menos que estés seguro de que es la misma causa. Hay muchos reportes sobre problemas pasados, y mientras tanto los síntomas generalmente se verán vagamente similares a los suyos (solo hay muchas formas en las que el inicio de sesión puede fallar), es probable que la causa sea diferente.

Some additional checks:

  • Asegúrate que session.auto_start no está establecido como 1 o true, de otra forma las sesiones de PHP sobrescribirán las de MediaWiki. (task T159567)
  • Asegúrate de que session.referer_check está establecido como una cadena vacía. Marca las sesiones como inválidas si está configurado incorrectamente.
  • Si está establecido, asegúrate que $wgCookieDomain y $wgCookiePath estén correctos.
  • Si $wgCookieSecure está establecido como true, tu servidor web debe ser servido con HTTPS.

Si la información anterior no es suficente para diagnosticar el problema (lo cual es casi siempre el caso), necesitarás tener datos de depuración detallados:

  • Capture the relevant HTTP requests and responses (i.e. visiting the login page + submitting the login form + the resulting redirect; if the wiki uses single sign-on then all the requests to Special:CentralAutoLogin as well). This can be done by using the Network tab in the Developer Tools of your web browser (more information: Firefox; Internet Explorer, Chrome and Chromium, Safari). Note this includes security-sensitive data (such as your session ID); when reporting bugs, either sanitize them or create a private paste. (Dumping to a HAR file is an easy way to log all required data.)
  • If the problems are happening on your own wiki, check your logs for relevant records, especially the session, cookie, authentication, objectcache channels.
Versión de MediaWiki:
1.35
  • For certain types of cache you can get more information by setting debug mode:
$wgHooks['SetupAfterCache'][] = function () {
    global $wgSessionCacheType;
    ObjectCache::getInstance( $wgSessionCacheType )->setDebug( true );
};
  • Ensure the hostnames match in MediaWiki and Apache httpd.conf. For example, for the domain example.com and the web server located at www.example.com:
# LocalSettings.php
$wgServer           = '//www.example.com';
$wgCanonicalServer  = 'https://www.example.com';
$wgSitename         = 'Example Wiki';

$wgSecureLogin      = true;
$wgCookieHttpOnly   = true;
$wgCookieSecure     = 'detect';
And:
# httpd.conf
<VirtualHost *:80>
   ...
   ServerName example.com
   ServerAlias www.example.com *.example.com
   Redirect permanent / https://example.com/
   ...
</VirtualHost>

<VirtualHost *:443>
   ...
   SSLEngine on
   ServerName example.com
   ServerAlias www.example.com *.example.com
   ...
</VirtualHost>