Pular para o conteúdo principal

Como configurar a autenticação WeChat OAuth para Captive Portals

Este guia técnico explica como configurar a autenticação WeChat OAuth para captive portals. Ele detalha os registros de plataforma necessários, o fluxo do OAuth 2.0, a seleção de escopo e os mecanismos de aplicação de rede necessários para capturar dados primários de visitantes chineses de forma segura.

📖 4 min de leitura📝 815 palavras🔧 2 exemplos práticos3 questões práticas📚 8 definições principais

Ouça este guia

Ver transcrição do podcast
COMO CONFIGURAR A AUTENTICAÇÃO WECHAT OAUTH PARA CAPTIVE PORTALS Um Briefing Técnico da Purple - Aproximadamente 10 Minutos --- INTRODUÇÃO E CONTEXTO (aproximadamente 1 minuto) Bem-vindo. Se você é responsável pelo WiFi de convidados em um hotel, rede de varejo, estádio ou centro de conferências que atende visitantes chineses, este briefing é para você. O WeChat tem 1,38 bilhão de usuários ativos mensais, de acordo com os dados de 2024 da Tencent. A esmagadora maioria está na China, mas a plataforma também possui uma presença internacional significativa - quatro milhões de usuários nos Estados Unidos, 12 milhões na Malásia e números crescentes no Sudeste Asiático, Europa e Oriente Médio. Quando um convidado chinês se conecta ao seu WiFi e vê uma página de login apenas com e-mail, Facebook ou um código de voucher, ele enfrenta um atrito imediato. Ele pode não ter um endereço de e-mail local configurado nesse dispositivo. Ele quase certamente tem o WeChat. Portanto, a questão não é se você deve oferecer o login do WeChat - é como configurá-lo de forma correta, segura e de uma maneira que gere dados primários que você possa realmente usar. É isso que vamos cobrir hoje. Passaremos pelo fluxo do OAuth 2.0, os dois registros de plataforma de que você precisa, a decisão de escopo que determina quais dados você coleta, o mecanismo de aplicação do lado da rede e as considerações de conformidade que importam em 2026. --- MERGULHO TÉCNICO PROFUNDO (aproximadamente 5 minutos) Vamos começar com a arquitetura. Um captive portal intercepta o tráfego HTTP de um dispositivo não autenticado e o redireciona para uma página de login. Essa página de login é hospedada em um servidor de captive portal - local ou na nuvem. Quando você adiciona o WeChat OAuth, está inserindo um provedor de identidade de terceiros nesse fluxo. Aqui está a sequência. O convidado se conecta ao seu SSID. O ponto de acesso ou controlador sem fio detecta que o dispositivo não possui uma sessão autenticada e redireciona todo o tráfego HTTP para a URL do seu captive portal. A página do captive portal carrega e apresenta as opções de login - incluindo o WeChat. O convidado toca no login do WeChat. O servidor do seu captive portal redireciona o navegador para o endpoint de autorização do WeChat em open.weixin.qq.com, transmitindo seu AppID, o URI de redirecionamento, o tipo de resposta 'code' e o escopo. O WeChat lida com a autenticação inteiramente em seus próprios servidores. Se o convidado já estiver logado no WeChat em seu navegador, ele verá uma tela de consentimento. Se estiver usando o navegador interno do WeChat (in-app browser), a experiência pode ser silenciosa com o escopo snsapi_base - sem nenhuma solicitação de consentimento. O WeChat então redireciona de volta para o URI de redirecionamento do seu captive portal com um código de autorização temporário. O servidor do seu captive portal troca esse código por um token de acesso chamando api.weixin.qq.com/sns/oauth2/access_token, transmitindo seu AppID, AppSecret, o código e o tipo de concessão authorization_code. O WeChat retorna um token de acesso, um token de atualização, o OpenID do usuário e o escopo concedido. Se você solicitou o escopo snsapi_userinfo, poderá fazer uma segunda chamada de API para recuperar o apelido, avatar, gênero e cidade do usuário. Agora, os dois registros de plataforma. É aqui que a maioria das implementações falha. O WeChat possui duas plataformas de desenvolvedor distintas. A WeChat Open Platform em open.weixin.qq.com lida com aplicações de website e aplicativos móveis. A WeChat Official Accounts Platform em mp.weixin.qq.com lida com contas públicas - o que a maioria dos estabelecimentos realmente precisa. Para um captive portal que atende convidados dentro do navegador interno do WeChat, você precisa de uma Conta de Serviço (Service Account) na Official Accounts Platform. Uma Conta de Assinatura (Subscription Account) não funcionará - ela não possui permissões de autorização de página web OAuth. Uma Conta de Serviço possui e suporta os escopos snsapi_base e snsapi_userinfo. Para um captive portal acessado a partir de um navegador móvel padrão fora do WeChat - Chrome no Android, Safari no iOS - você precisa de uma Aplicação de Website (Website Application) registrada na Open Platform. Isso usa o escopo snsapi_login e apresenta um código QR que o usuário escaneia com seu aplicativo WeChat. Na prática, a maioria das implantações em estabelecimentos usa ambos. Um convidado no WiFi de um hotel pode abrir o captive portal no Chrome, ver um código QR, escaneá-lo com o WeChat e se autenticar. Or pode seguir um link no próprio WeChat, cair no navegador interno e se autenticar silenciosamente com o snsapi_base. Vamos falar sobre a seleção de escopo, porque este é um ponto de decisão real. O snsapi_base retorna apenas o OpenID - um identificador exclusivo para esse usuário dentro da sua Conta Oficial (Official Account). Não exige nenhuma solicitação de consentimento do usuário. A autenticação é invisível para o usuário. Isso é ideal para convidados recorrentes sobre os quais você já traçou um perfil, ou para estabelecimentos onde você deseja atrito zero ao custo de zero novos dados. O snsapi_userinfo retorna o OpenID mais o apelido do WeChat do usuário, foto de perfil, gênero, configuração de idioma e cidade. Exige uma tela de consentimento explícita. O usuário vê uma solicitação perguntando se ele permite que sua Conta Oficial acesse suas informações. A maioria dos usuários aceita, mas há atrito. A escolha certa depende do seu caso de uso. Para o primeiro registro de um convidado onde você deseja criar um perfil, use o snsapi_userinfo e combine-o com uma camada de consentimento em conformidade com a GDPR na página do seu captive portal. Para um convidado recorrente que já consentiu e cujo perfil você já possui, use o snsapi_base para autenticação silenciosa. Agora, o lado da aplicação de rede. Obter um token OAuth prova a identidade, mas não abre a rede automaticamente. Você precisa de um mecanismo para traduzir uma autenticação bem-sucedida em acesso à rede. As duas abordagens padrão são o RADIUS Change of Authorisation, definido na RFC 3576, e o desvio de endereço MAC (MAC address bypass). Com o RADIUS CoA, o servidor do seu captive portal envia uma solicitação de CoA para o controlador de rede após o OAuth bem-sucedido, e o controlador move o dispositivo da VLAN não autenticada para a VLAN de convidados. Isso funciona com Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist e a maioria dos controladores de classe corporativa. Com o desvio de MAC, o servidor do captive portal registra o endereço MAC do dispositivo como um cliente autorizado, e o controlador o permite. O desvio de MAC é mais simples de implementar, mas menos seguro, porque os endereços MAC podem ser clonados. A plataforma Guest WiFi da Purple lida com ambos os mecanismos. Após a conclusão do WeChat OAuth, a sobreposição de nuvem da Purple envia o sinal apropriado para o hardware subjacente - seja ele Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme ou Fortinet. O operador do estabelecimento não precisa gerenciar essa tradução manualmente. --- RECOMENDAÇÕES DE IMPLEMENTAÇÃO E ARMADILHAS (aproximadamente 2 minutos) Deixe-me apresentar as cinco coisas que fazem as implementações de captive portal com WeChat OAuth falharem. Primeiro: a incompatibilidade do URI de redirecionamento. O WeChat valida o URI de redirecionamento em relação ao domínio autorizado que você registrou na plataforma. Se o servidor do seu captive portal usar um subdomínio diferente, um caminho diferente ou HTTP em vez de HTTPS, o fluxo do OAuth falhará com o erro 40029 - código inválido. Registre todas as variantes de domínio que você usa, incluindo ambientes de homologação. Segundo: o AppSecret no lado do cliente. Seu AppSecret nunca deve aparecer no JavaScript do lado do cliente ou em um binário de aplicativo móvel. Ele pertence ao seu servidor. Se for exposto, qualquer pessoa poderá se passar por sua aplicação e chamar as APIs do WeChat em seu nome. Terceiro: falta de proteção CSRF. O parâmetro 'state' na solicitação OAuth existe especificamente para evitar falsificação de solicitação entre sites. Gere um valor de estado criptograficamente aleatório, armazene-o na sessão do usuário e valide-o quando o WeChat redirecionar de volta. Pule isso e você terá uma vulnerabilidade real. Quarto: a lacuna de detecção do navegador interno. O navegador interno do WeChat define uma string de user agent específica contendo 'MicroMessenger'. Se o seu captive portal não detectar isso e fornecer o fluxo OAuth correto - fluxo de Conta Oficial para navegador interno, fluxo de QR da Open Platform para navegadores padrão - os usuários terão uma experiência corrompida ou um erro. Quinto: alinhamento com GDPR e PIPL. Se você atende visitantes europeus, a GDPR se aplica aos dados que você coleta via WeChat OAuth. Se você atende visitantes chineses, a Lei de Proteção de Informações Pessoais da China - PIPL - se aplica a como você processa os dados deles. Ambas exigem uma base legal para o processamento, limitação clara de finalidade e minimização de dados. O snsapi_base é mais fácil de justificar sob os princípios de minimização de dados do que o snsapi_userinfo. O que quer que você colete, documente sua base legal e seu período de retenção. --- PERGUNTAS E RESPOSTAS RÁPIDAS (aproximadamente 1 minuto) Pergunta: Posso usar o login do WeChat em um captive portal que também oferece login por e-mail e SMS? Sim. A maioria das plataformas de captive portal corporativo, incluindo a Purple, suporta múltiplos métodos de autenticação na mesma página do captive portal. O WeChat aparece como uma opção ao lado de outras. Pergunta: O WeChat OAuth funciona no iOS? Sim, mas com uma nuance. A estrutura App Tracking Transparency da Apple não afeta os fluxos OAuth do lado do servidor. O login do WeChat no Safari no iOS funciona por meio do fluxo de código QR ou do fluxo de redirecionamento. O próprio aplicativo WeChat lida com a autenticação. Pergunta: O que acontece se a API do WeChat estiver indisponível? Seu captive portal deve implementar uma alternativa. Se a chamada da API do WeChat expirar ou retornar um erro, redirecione o usuário para um método de login alternativo. Não os deixe com uma tela em branco. Pergunta: Posso usar o OpenID como um identificador persistente de cliente? Dentro da sua Conta Oficial, sim. O OpenID é estável para um determinado usuário e uma determinada Conta Oficial. Se você tiver várias Contas Oficiais, o mesmo usuário terá OpenIDs diferentes entre elas. Para resolução de identidade entre contas, o WeChat fornece um UnionID, o que exige que suas contas estejam vinculadas na Open Platform. --- RESUMO E PRÓXIMOS PASSOS (aproximadamente 1 minuto) Para resumir. A autenticação WeChat OAuth para captive portals é um exercício de registro em duas plataformas, uma decisão de escopo, uma integração de aplicação de rede e uma revisão de conformidade. Acerte essas quatro coisas e você terá um método de login que atende a mais de um bilhão de visitantes em potencial com zero atrito de senha. Os próximos passos práticos são estes. Primeiro, determine se seus visitantes encontram o captive portal dentro do navegador interno do WeChat ou em um navegador móvel padrão - isso determina qual registro de plataforma você precisa. Segundo, decida sobre o escopo - snsapi_base para convidados recorrentes, snsapi_userinfo para o primeiro registro com consentimento. Terceiro, confirme se o hardware da sua rede suporta RADIUS CoA ou configure o desvio de MAC como alternativa. Quarto, revise seu aviso de privacidade e fluxo de consentimento em relação aos requisitos da GDPR e da PIPL. Quinto, teste o URI de redirecionamento, a validação do parâmetro de estado e a detecção do navegador interno antes de entrar em produção. Se você quiser ver como a Purple lida com o WeChat OAuth como parte de uma plataforma mais ampla de Guest WiFi e analytics - em 80.000 estabelecimentos e 440 milhões de logins em 2024 - visite purple.ai ou fale com sua equipe de contas. Obrigado por ouvir. --- FIM DO ROTEIRO

header_image.png

Resumo Executivo

Quando os visitantes chineses se conectam ao seu WiFi, apresentar uma página de login apenas com e-mail ou Facebook cria um atrito imediato. O WeChat tem 1,38 bilhão de usuários ativos mensais, e configurá-lo como um provedor de identidade elimina essa barreira. Este guia explica como implementar a autenticação WeChat OAuth 2.0 para captive portals, detalhando os registros de plataforma necessários, o fluxo do OAuth e os mecanismos de aplicação de rede exigidos para traduzir um login bem-sucedido em acesso à rede. Cobrimos a implementação técnica em hardware corporativo e os requisitos de conformidade sob a GDPR e a PIPL.

Arquitetura Técnica

Um captive portal intercepta o tráfego HTTP de um dispositivo não autenticado e o redireciona para uma página de login hospedada em um servidor de captive portal. Quando você integra o WeChat OAuth, insere um provedor de identidade de terceiros nesse fluxo.

architecture_overview.png

A sequência funciona da seguinte forma:

  1. O visitante se conecta ao SSID.
  2. O ponto de acesso ou controlador sem fio detecta a falta de uma sessão autenticada e redireciona o tráfego HTTP para a URL do captive portal.
  3. O visitante seleciona o login do WeChat.
  4. O servidor do captive portal redireciona o navegador para o endpoint de autorização do WeChat (open.weixin.qq.com), transmitindo o AppID, redirect_uri, response_type=code e scope.
  5. O WeChat lida com a autenticação. Se o visitante usar o navegador interno do WeChat com o escopo snsapi_base, isso ocorre de forma silenciosa.
  6. O WeChat redireciona de volta para o redirect_uri do captive portal com um código de autorização temporário.
  7. O servidor do captive portal troca esse código por um token de acesso chamando api.weixin.qq.com/sns/oauth2/access_token.
  8. O WeChat retorna um access_token, refresh_token e o openid do usuário.

Requisitos de Registro de Plataforma

A implementação do login do WeChat exige o registro na plataforma de desenvolvedor correta. O WeChat opera duas plataformas distintas, e selecionar a errada fará com que a integração falhe.

WeChat Official Accounts Platform

Para um captive portal que atende visitantes dentro do navegador interno do WeChat, você precisa de uma Conta de Serviço (Service Account) na Official Accounts Platform (mp.weixin.qq.com). Uma Conta de Assinatura (Subscription Account) carece das permissões de autorização de página web OAuth necessárias. Uma Conta de Serviço suporta os escopos snsapi_base e snsapi_userinfo.

WeChat Open Platform

Para um captive portal acessado a partir de um navegador móvel padrão fora do WeChat (como o Chrome no Android ou Safari no iOS), você precisa de uma Aplicação de Website (Website Application) registrada na Open Platform (open.weixin.qq.com). Isso usa o escopo snsapi_login e apresenta um código QR que o usuário escaneia com seu aplicativo WeChat.

A maioria das implantações corporativas exige ambos os registros para cobrir todos os métodos de acesso.

Seleção de Escopo e Coleta de Dados

O parâmetro de escopo determina quais dados o WeChat retorna ao seu servidor de captive portal. Essa decisão afeta tanto o atrito do usuário quanto a conformidade com a privacidade de dados.

scope_comparison_chart.png

snsapi_base

Este escopo retorna apenas o OpenID, um identificador exclusivo para o usuário dentro da sua Conta Oficial (Official Account). Não exige nenhuma solicitação de consentimento do usuário, tornando a autenticação invisível para ele. Isso é ideal para visitantes recorrentes sobre os quais você já possui um perfil, ou para estabelecimentos que priorizam o atrito zero em detrimento da coleta de novos dados.

snsapi_userinfo

Este escopo retorna o OpenID mais o apelido do WeChat do usuário, foto de perfil, gênero, configuração de idioma e cidade. Exige uma tela de consentimento explícita, introduzindo atrito. Use isso para o registro de visitantes de primeira viagem onde a criação de um perfil é necessária, combinado com uma camada de consentimento em conformidade com a GDPR.

Integração de Aplicação de Rede

A aquisição de um token OAuth prova a identidade, mas não abre a rede. Você deve traduzir uma autenticação bem-sucedida em acesso à rede usando protocolos padrão.

RADIUS Change of Authorisation (CoA)

Definido no IEEE 802.1X e na RFC 3576, o RADIUS CoA permite que o servidor do captive portal envie uma solicitação ao controlador de rede após o OAuth bem-sucedido. O controlador então move o dispositivo da VLAN não autenticada para a VLAN de convidados. Este é o padrão para hardware corporativo, incluindo Cisco Meraki, HPE Aruba, Ruckus e Juniper Mist.

MAC Address Bypass

Como alternativa, o servidor do captive portal registra o endereço MAC do dispositivo como um cliente autorizado, e o controlador o permite. Embora seja mais simples de implementar, é menos seguro, pois os endereços MAC podem ser clonados.

A sobreposição de nuvem da Purple automatiza essa tradução, enviando o sinal apropriado para o hardware subjacente (incluindo Ubiquiti UniFi, Cambium, Extreme e Fortinet) assim que o WeChat OAuth for concluído.

Considerações de Segurança e Conformidade

Alinhamento com GDPR e PIPL

Se você atende visitantes europeus, a GDPR se aplica aos dados coletados via WeChat OAuth. Se você atende visitantes chineses, a Lei de Proteção de Informações Pessoais da China (PIPL) se aplica. Ambas as estruturas exigem uma base legal para o processamento, limitação clara de finalidade e minimização de dados. O escopo snsapi_base se alinha mais facilmente com os princípios de minimização de dados do que o snsapi_userinfo.

Proteção CSRF

O parâmetro state na solicitação OAuth previneevita falsificação de solicitação entre sites (cross-site request forgery). Você deve gerar um valor de estado criptograficamente aleatório, armazená-lo na sessão do usuário e validá-lo quando o WeChat redirecionar de volta.

Validação de URI de Redirecionamento

O WeChat valida o redirect_uri em relação ao domínio autorizado registrado na plataforma. Se o seu servidor de portal usar um subdomínio, caminho ou HTTP diferente em vez de HTTPS, o fluxo OAuth falhará com o erro 40029.

Para mais informações sobre como proteger sua rede, consulte nosso Segurança de WiFi Corporativa: Um Guia Completo para 2026 .

Definições principais

snsapi_base

Um escopo do WeChat OAuth que retorna apenas o OpenID do usuário sem exibir uma solicitação de consentimento.

Usado quando as equipes de TI precisam autenticar visitantes recorrentes silenciosamente, sem causar atrito no login.

snsapi_userinfo

Um escopo do WeChat OAuth que retorna o OpenID junto com dados demográficos (apelido, gênero, cidade) e exige o consentimento explícito do usuário.

Usado durante o primeiro registro quando as equipes de marketing precisam criar um perfil de visitante.

OpenID

Um identificador exclusivo para um usuário específico dentro de uma conta oficial do WeChat (WeChat Official Account) específica.

Usado como chave primária no banco de dados do captive portal para rastrear o comportamento do visitante e as visitas de retorno.

RADIUS CoA

Change of Authorisation. Um mecanismo definido na RFC 3576 que permite a um servidor modificar o estado de autorização de uma sessão ativa.

Usado pelo servidor do captive portal para instruir o controlador sem fio a conceder acesso à rede após a autenticação bem-sucedida no WeChat.

PIPL

Personal Information Protection Law. A regulamentação abrangente de privacidade de dados da China.

Deve ser considerada juntamente com a GDPR ao projetar o fluxo de consentimento para visitantes chineses que usam o login do WeChat.

AppID and AppSecret

As credenciais fornecidas pelo WeChat para identificar e autenticar sua aplicação.

O AppSecret deve permanecer de forma segura no servidor do captive portal e nunca ser exposto no código do lado do cliente.

State Parameter

Uma string criptograficamente aleatória transmitida na solicitação OAuth e validada no retorno.

Essencial para prevenir ataques de falsificação de solicitação entre sites (CSRF) no captive portal.

MAC Address Bypass

Um método de concessão de acesso à rede por meio da autorização do endereço de hardware do dispositivo, em vez de exigir a autenticação 802.1X.

Uma alternativa ao RADIUS CoA para configurações de rede mais simples, embora menos segura.

Exemplos práticos

Uma marca de varejo de luxo em Londres deseja oferecer login via WeChat para compradores chineses. Eles querem coletar dados demográficos para entender sua base de clientes, mas estão preocupados com a conformidade com a GDPR e as altas taxas de abandono no captive portal.

O varejista deve registrar uma Conta de Serviço (Service Account) na WeChat Official Accounts Platform. Eles devem configurar o captive portal para usar o escopo snsapi_userinfo para conexões de primeira viagem para coletar dados demográficos (apelido, gênero, cidade). Para garantir a conformidade com a GDPR, a página do captive portal deve exibir um opt-in claro e de escolha consciente antes do redirecionamento do WeChat, explicando exatamente quais dados são coletados e por quê. Para compradores recorrentes, o captive portal deve detectar o endereço MAC e usar snsapi_base para autenticação silenciosa, minimizando o atrito.

Comentário do examinador: Esta abordagem equilibra a coleta de dados com a experiência do usuário. Ao limitar o fluxo de alto atrito do `snsapi_userinfo` à primeira visita e usar o `snsapi_base` posteriormente, o varejista maximiza a conversão enquanto permanece em conformidade com os princípios de minimização de dados.

Um estádio implanta uma nova rede WiFi usando controladores HPE Aruba. Eles configuraram o WeChat OAuth e o captive portal recebe com sucesso o token de acesso, mas o dispositivo do visitante permanece na página do captive portal e não consegue acessar a internet.

A integração carece de um mecanismo de aplicação de rede. O servidor do captive portal verificou a identidade do usuário com o WeChat, mas não instruiu o controlador HPE Aruba a conceder o acesso. O servidor do captive portal deve ser configurado para enviar uma mensagem RADIUS Change of Authorisation (CoA) para o controlador, instruindo-o a transicionar o endereço MAC do usuário da função de pré-autenticação para a função de convidado autenticado.

Comentário do examinador: Isso destaca a distinção entre verificação de identidade e controle de acesso à rede. Redes corporativas exigem um protocolo como o RADIUS CoA para preencher a lacuna entre a aplicação web (captive portal) e a infraestrutura de rede.

Questões práticas

Q1. Você está implantando um captive portal em uma rede de varejo. Os testes mostram que os usuários que abrem o captive portal no Safari no iOS recebem um erro ao selecionar o login do WeChat, mas os usuários que abrem o captive portal a partir de um link de mensagem dentro do WeChat se autenticam com sucesso. Qual é a causa provável?

Dica: Considere a diferença entre o navegador interno do WeChat (in-app browser) e os navegadores móveis padrão.

Ver resposta modelo

A implementação provavelmente está dependendo exclusivamente de uma Conta de Serviço (Service Account) registrada na Official Accounts Platform, que suporta apenas OAuth dentro do navegador interno do WeChat. Para suportar o Safari no iOS, você também deve registrar uma Aplicação de Website (Website Application) na WeChat Open Platform e implementar a detecção de user agent para direcionar os usuários do Safari para o fluxo de código QR.

Q2. Os logs do seu servidor de captive portal mostram erros frequentes 40029 'invalid code' retornando da API do WeChat durante a troca do token de acesso. Qual configuração você deve verificar primeiro?

Dica: Pense em como o WeChat valida a origem da solicitação de autenticação.

Ver resposta modelo

Você deve verificar a configuração do redirect_uri. O WeChat valida rigorosamente o URI de redirecionamento em relação ao domínio autorizado registrado no console do desenvolvedor. Se o captive portal estiver usando um subdomínio diferente, ou se deixar de usar HTTPS, o WeChat rejeitará a troca de código.

Q3. O operador de um estabelecimento deseja coletar dados dos visitantes, mas insiste em atrito zero durante o processo de login. Ele solicita que você configure o login do WeChat para coletar o apelido e a cidade do visitante sem exibir uma solicitação de consentimento. Como você responde?

Dica: Revise os recursos dos diferentes escopos do OAuth.

Ver resposta modelo

Você deve informar ao operador que isso é tecnicamente impossível. A coleta de dados demográficos como apelido e cidade exige o escopo snsapi_userinfo, que obrigatoriamente aciona uma solicitação de consentimento do WeChat. Para obter atrito zero, você deve usar o snsapi_base, que opera silenciosamente, mas retorna apenas o OpenID.