Issue #11

0 up
0 down
Closed
noosfero-apps/discussion-app#11
Created by Alexandre Amaral (Edited )

Login Rede Social

Não é possível logar com o facebook ou g+

Assignee: Leonardo Merlin
Milestone: 7.0
5 participants
  • Photo
    Leonardo Merlin @leonardomerlin

    mentioned in issue #10

    Choose File ...   File name...
    Cancel
  • 3c69c5dc92b1406fede16bd008a60253?s=40&d=identicon
    Ricardo Poppi @ricardopoppi

    Milestone changed to 7.0

    Choose File ...   File name...
    Cancel
  • 3c69c5dc92b1406fede16bd008a60253?s=40&d=identicon
    Ricardo Poppi @ricardopoppi

    @rafadigomes @vfcosta pessoal, novidades em relação a login por redes?

    Choose File ...   File name...
    Cancel
  • 4a20548511a65cfccc863520b70c3ee9?s=40&d=identicon
    Victor Costa @vfcosta (Edited )

    @rafadigomes no dialoga antigo tinha dois trechos de código javascript para tratar o login via oauth.

    O primeiro envia uma mensagem de tempos em tempos para a nova janela aberta requisitando o resultado do login oauth:

    https://softwarepublico.gov.br/gitlab/noosfero-apps/proposal-app/blob/master/js/main.js#L850

            var child = window.open(url, '_blank');
            var interval = setInterval(function() {
                try {
                  if(!child.closed) {
                      child.postMessage({
                        message: 'requestOauthClientPluginResult'
                      }, '*');
                  }
                }
                catch(e) {
                    // we're here when the child window has been navigated away or closed
                    if (child.closed) {
                        clearInterval(interval);
                        return;
                    }
                }
            }, 300);
    

    O segundo recebe a resposta e efetiva o login do usuário no frontend do dialoga:

    https://softwarepublico.gov.br/gitlab/noosfero-apps/proposal-app/blob/master/js/main.js#L1889

      window.addEventListener('message', function(ev) {
        if (ev.data.message === 'oauthClientPluginResult') {
          Main.loginCallback(ev.data.logged_in, ev.data.private_token, ev.data.user);
          ev.source.close();
        }
      });
    

    Caso isso já não tenha sido portado para a nova versão do dialoga, precisamos adaptar isso e recolocar no frontend.

    @ricardopoppi a configuração do oauth para o facebook já está ok. Estou verificando isso para o google.

    Choose File ...   File name...
    Cancel
  • 4a20548511a65cfccc863520b70c3ee9?s=40&d=identicon
    Victor Costa @vfcosta

    Este é o código javascript que o backend utiliza para enviar a resposta:

     window.addEventListener("message", function(ev) {
        if (ev.data.message === "requestOauthClientPluginResult") {
          ev.source.postMessage(
            {
              message: "oauthClientPluginResult",
              logged_in: true,
              private_token: 'XXXX',
              user: {"login":"YYYY","person":{"identifier":"YYYY","name":"ZZZZ"}} }, "*");
        }
      });
    
    Choose File ...   File name...
    Cancel
  • 3fc9c2427708ef7325c38291ca1f286e?s=40&d=identicon
    Rafael Diego @rafadigomes

    @vfcosta esse código já esta portado

    Choose File ...   File name...
    Cancel
  • 4a20548511a65cfccc863520b70c3ee9?s=40&d=identicon
    Victor Costa @vfcosta

    @rafadigomes então eu não consegui detectar o porquê de não funcionar. Descobriu algo?

    Choose File ...   File name...
    Cancel
  • 3fc9c2427708ef7325c38291ca1f286e?s=40&d=identicon
    Rafael Diego @rafadigomes

    @vfcosta, ainda não. Aqui não aparece nenhum erro.

    Choose File ...   File name...
    Cancel
  • Photo
    Leonardo Merlin @leonardomerlin

    Reassigned to @leonardomerlin

    Choose File ...   File name...
    Cancel
  • Photo
    Leonardo Merlin @leonardomerlin
    Choose File ...   File name...
    Cancel
  • Photo
    Leonardo Merlin @leonardomerlin

    Status changed to closed

    Choose File ...   File name...
    Cancel