Login/Registro Google One Tap

|||
-|-|-|
:discourse: | Resumo | Discourse Google One Tap adiciona suporte para cadastro e login com o Google One Tap ao Discourse.
:hammer_and_wrench: | Link do Repositório | https://github.com/discourse/discourse-google-one-tap
:open_book: | Guia de Instalação | Como instalar plugins no Discourse


Funcionalidades

Este plugin adiciona suporte para login e cadastro com o Google One Tap ao Discourse. Quando este plugin for instalado e configurado, usuários anônimos verão um prompt que se parece com isto:

A partir desse prompt, eles podem usar qualquer conta Google à qual estejam atualmente logados para se cadastrar ou fazer login (se já possuírem uma conta em seu site com o mesmo endereço de e-mail) em sua instância do Discourse.

Configuração

  1. Certifique-se de que a configuração google_one_tap_enabled esteja habilitada

  2. Siga as instruções em Setup  |  Web guides  |  Google for Developers para obter um ID de cliente e configurar a aparência do prompt de login/cadastro e da tela de consentimento

  3. Adicione o ID de cliente obtido na etapa 2 à configuração do site google_oauth2_client_id.

CHANGELOG

Nenhum.

Créditos

Um grande agradecimento a @ghassan por desenvolver a versão inicial deste plugin.

27 curtidas

Obrigado pelo ótimo plugin, no entanto, parece haver um bug, onde o plugin cria uma div invisível, tornando impossível interagir com qualquer elemento abaixo dela.
Ele também cria espaço extra no lado esquerdo da página no celular.
Celular:


Desktop:

1 curtida

Como isso difere do login do Google integrado para o serviço Discourse?

1 curtida

Olá :wave: Sim, este plugin definitivamente precisa de um pouco de :heart: Testei ontem e experimentei o mesmo. Parece que o iframe do Google no modal de login/cadastro também tem problemas. Parece que o alinhamento e a estilização não são os mesmos que os outros botões sociais e, se eu abrir o modal de login e depois mudar para cadastro, o botão do Google não é renderizado.

Olá Don, você pode, por favor, expandir isso com um pouco mais de informação e, possivelmente, algumas capturas de tela? Consegui fazer funcionar localmente:

No entanto, no modo anônimo, eu experimento o mesmo problema:

Pode haver muitas razões para isso; uma delas, por exemplo, é o “esfriamento exponencial” que o Google adicionou:

Potencialmente, pode haver alguma maneira de detectarmos que isso não foi carregado corretamente – mas, pelo menos no Chrome, o elemento com “Sign in to localhost with google.com” nem sequer é um elemento na página. Talvez possamos usar isso?

google.accounts.id.prompt((notification) => {
    console.log(notification)
});

Este PR deve corrigir o problema. @Osama Removi alguns estilos CSS. Você pode verificar quando tiver tempo?


3 curtidas

Obrigado por um ótimo plugin, é exatamente o que eu estava procurando.
Mas o plugin também é compatível com as últimas alterações “A descontinuação de cookies de terceiros do Chrome começa no primeiro trimestre de 2024”. Aqui estão mais informações sobre a migração para o FedCM obrigatório.

Outra observação.

A funcionalidade é muito semelhante, poderia ser combinada com o login nativo do Google que o Discourse já possui, para que a tela de login não tenha duas caixas de “Login com Google”?

1 curtida

Parece que ninguém respondeu a você @nathank, então eu responderei com o que acredito ser tanto a resposta quanto talvez uma pergunta?

Eu acho que este “one-tap” é o que é comumente visto como o prompt de criação de conta do Google quando você acessa um site, por exemplo, assim:

Acredito que a principal diferença entre isso e o suporte nativo de autenticação do Google é que isso é acionado quando alguém acessa uma página, em vez de um usuário encontrar o caminho para o prompt de login/cadastro.

1 curtida

Agradeço imensamente por responder à minha pergunta um pouco antiga!!

Se é tão simples (e parece que é), por que não incorporar a funcionalidade deste plugin ao núcleo??

2 curtidas

Sim, concordo, ou torne-o uma opção no núcleo. Esta é uma forma bem reconhecida de aumentar o número de registros e reduzir o atrito na integração - os usuários estão familiarizados com essa experiência.

1 curtida

Essa solução tinha (ou tem) alguns problemas que tornaram o login mais difícil e ela ficava desorganizada em dispositivos móveis. Desculpe, essa é uma resposta realmente inútil, pois não me lembro mais quais eram os problemas que me fizeram desativá-la — mesmo que a maioria use o Gmail aqui na Finlândia.

Bump, acabei de notar isso também.

Não use esse login “comum” do Google. Não é mais difícil. Mantive ambos, porque um toque não está ativo em todas as situações.

Exatamente, mas eu não quero ter que escolher entre ter dois botões redundantes ou nenhum deles em algumas situações. :slight_smile:

Ele entrará em contato involuntariamente com os servidores do Google para qualquer pessoa que tente fazer login/registrar na página inicial.

  1. Navegue até Admin → Personalizar → Temas → CSS/HTML.
  2. Abra o editor CSS do seu tema ativo.
  3. Adicione o seguinte código à seção CSS:
div#google_one_tap.btn-social {
    display: none !important;
}
  1. Salve suas alterações.
  2. Atualize a página para garantir que o botão não esteja mais visível.
2 curtidas