He intentado demasiadas variaciones para enumerarlas aquí, pero el punto básico es que no puedo iniciar sesión al usuario inmediatamente después del registro a través de los Servicios. He intentado una instalación nueva de Drupal 7.33 con solo los Servicios 7.x.3.11 habilitados y la configuración de recursos predeterminada proporcionada por drupalgap 7.x.1.9
Cuando me registro con la interfaz de Drupal, se crea el usuario, se abre la sesión y aterrizo en mi página de perfil iniciada sesión.
vs.
Cuando llamo al punto final de Servicios /services/user/register.json
, Drupal crea la cuenta pero la sesión no persiste. Vea mis capturas de pantalla a continuación.
¿Cómo puedo A. hacer que la sesión persista para las siguientes llamadas de recursos del Servicio O B. enganchar para agregar la contraseña del usuario o autogenerada nuevamente en la respuesta json para que pueda volver a enviar mediante programación el formulario /login.json del lado del cliente (que persiste)?
Esta pregunta, ¿cómo podría ser diferente el usuario global $ entre la interfaz de Drupal y el módulo de Servicios? describe mi mismo problema usando LoginToboggan.
En mi captura de pantalla, verá una línea de depuración llamada "depuración de inicio de sesión". Proviene de la línea 333 de "/sites/all/modules/logintoboggan/logintoboggan.module" donde probé todo esto en vano ...
function logintoboggan_process_login($account, &$edit, $redirect = array()){
global $user;
$user = user_load($account->uid);
//watchdog('login debug', json_encode($account));
watchdog('login debug', json_encode($edit));
//user_login_submit(array(), array('uid' => $account->uid));
user_login_finalize($edit);
// $user = user_load($account->uid);
// $user->token = drupal_get_token('services'); // WE HAVE A TOKEN ALTHOUGH I DOUBT THIS WOULD WORK IN TERMS OF SESSION PERSISTANCE
// user_login_finalize($edit);
// module_invoke_all('hook_user_login');
// module_invoke_all('tripchi_user_login');
// module_invoke_all('logintoboggan_user_login');
Respuestas:
¿No está seguro si necesita una respuesta en este momento (o si esta es una), pero parece que tiene activada la opción "Requerir verificación por correo electrónico cuando un visitante crea una cuenta"?
En su imagen, en la segunda ventana (donde ve el mensaje de drupal_set_message ()), dice que se envió un correo electrónico y deberá seguir las instrucciones para obtener el mensaje completo.
Para desactivar esto, navegue a / admin / config / people / accounts y desmarque Requerir verificación por correo electrónico cuando un visitante cree una cuenta.
Si observa la tabla de usuarios en la base de datos, la columna de estado debe mostrar un 1 para habilitado, 0 para deshabilitado (lo que significa que no ha hecho clic en el enlace del correo electrónico).
¡Espero eso ayude!
fuente
Funciona bien para mí, puedes usar el siguiente código
pasar la identificación y contraseña del correo electrónico del usuario, luego devolverá todo el valor requerido, como la identificación de la sesión, el nombre de la sesión, el token, el uid del usuario
fuente