Tentei muitas variações para listar aqui, mas o ponto básico é que não consigo logar o usuário imediatamente após o registro pelos Serviços. Tentei uma nova instalação do Drupal 7.33 apenas com o Services 7.x.3.11 ativado e as configurações de recursos padrão fornecidas pelo drupalgap 7.x.1.9
Quando me registro usando a interface do Drupal, o usuário é criado, a sessão é aberta e eu chego na minha página de perfil.
vs.
Quando ligo para o terminal de serviços /services/user/register.json
, o Drupal cria a conta, mas a sessão não persiste. Veja minhas imagens abaixo.
Como posso A. obter a sessão para persistir para chamadas de recursos de serviço subseqüentes OU B. ligar para adicionar a senha do usuário ou gerada automaticamente de volta à resposta json para que eu possa reenviar programaticamente o formulário /login.json do lado do cliente (que persiste)?
Esta pergunta como o usuário global $ pode ser diferente entre a interface Drupal e o módulo Serviços? descreve meu mesmo problema usando o LoginToboggan.
Na minha captura de tela, você verá uma linha de depuração chamada "login debug". Vem da linha 333 de "/sites/all/modules/logintoboggan/logintoboggan.module", onde eu tentei tudo isso sem sucesso ...
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');
Respostas:
Não tenho certeza se você precisa de uma resposta neste momento (ou se é mesmo uma), mas parece que você está "Requer verificação de e-mail quando um visitante cria uma conta" ativada?
Na sua imagem, na segunda janela (onde você vê a mensagem de drupal_set_message ()), indica que um email foi enviado e você precisará seguir as instruções para obter a mensagem completa.
Para desativar isso, navegue para / admin / config / people / accounts e desmarque a opção Exigir verificação por email quando um visitante criar uma conta.
Se você olhar para a tabela de usuários no banco de dados, a coluna de status deverá mostrar 1 para ativado, 0 para desativado (o que significa que ele não clicou no link no email).
Espero que ajude!
fonte
Está funcionando bem para mim, você pode usar o seguinte código
passar a ID e a senha do email do usuário, ele retornará todo o valor necessário, como ID da sessão, nome da sessão, token, uid do usuário
fonte