WordPress.com Connect
Este texto foi traduzido usando IA. Se você deseja ver o texto original em inglês, clique aqui.
O WordPress.com Connect é uma solução de autenticação simplificada projetada especificamente para a funcionalidade “Fazer login com WordPress.com”. Ele oferece uma maneira segura e fácil de usar para que milhões de usuários do WordPress.com se autentiquem no seu aplicativo usando suas credenciais existentes do WordPress.com.

O WordPress.com Connect é uma implementação especializada do OAuth2 focada na autenticação de usuários e verificação de identidade. Para acesso completo à API de sites WordPress.com e gerenciamento de conteúdo, consulte a documentação completa de Autenticação OAuth2.
O WordPress.com Connect permite que os usuários do WordPress.com façam login rapidamente no seu serviço sem precisar criar novas contas. Quando os usuários se conectam, seu aplicativo recebe as informações básicas do perfil deles (nome, e-mail, avatar), enquanto eles mantêm o controle sobre seus dados e privacidade no WordPress.com.
Principais características do WordPress.com Connect:
- Fácil de usar: Interface familiar para milhões de usuários do WordPress.com
- Focado em identidade: Projetado para autenticação de usuários, não para gerenciamento de conteúdo
- Escopo limitado: Acesso restrito a informações básicas do perfil por meio do endpoint
/me/ - Fluxo simplificado: Otimizado para botões “Fazer login com WordPress.com”
Benefícios
Milhões de usuários – O WordPress.com conta com milhões de usuários e cresce a cada dia. Ao adicionar o WordPress.com Connect, você passará a fazer parte de uma grande família que facilita para os usuários do WordPress.com explorarem novos serviços.
Compatível com seu sistema de login existente – O WordPress.com Connect pode ser usado sozinho ou como uma opção complementar de login ao seu sistema de registro existente. Assim que um usuário se conectar, você terá acesso às informações do perfil dele, que poderá usar no seu próprio aplicativo.
Relacionamento de Confiança – Permita que os usuários façam login com as mesmas credenciais que usam diariamente no WordPress.com. Isso elimina a dificuldade de ter que lembrar e gerenciar um novo login para outro serviço.
Para exemplos práticos de implementação do WordPress.com Connect em diferentes linguagens de programação, confira o repositório wpcom-connect-examples. Este repositório contém código de exemplo demonstrando como implementar a funcionalidade “Login com WordPress.com” em diversas linguagens e frameworks.
Detalhes da Implementação OAuth2
O WordPress.com Connect usa o Endpoint de Autenticação OAuth2 (/oauth2/authenticate) em vez do endpoint de autorização padrão. Este endpoint especializado é otimizado para verificação de identidade e limita automaticamente o escopo do token ao acesso básico de perfil.
Fluxo Técnico:
- Autorização do Usuário: Redirecione para
/oauth2/authenticate(não/oauth2/authorize) - Troca de Código: Troque o código de autorização em
/oauth2/token(igual ao OAuth2 completo) - Acesso Limitado: O token resultante fornece acesso apenas ao endpoint
/me/ - Dados do Perfil: Recupere a identidade do usuário em
/rest/v1.1/me
Para informações técnicas detalhadas sobre o endpoint /oauth2/authenticate, consulte a seção Endpoint de Autenticação na documentação do OAuth2.
Pré-requisitos
Antes de implementar o WordPress.com Connect, você precisa registrar seu aplicativo:
- Crie um Aplicativo WordPress.com em developer.wordpress.com/apps
- Configure seu aplicativo: Use o mesmo título do seu site (exibido nos formulários de login)
- Obtenha as credenciais: Você receberá um
CLIENT_IDe umCLIENT_SECRET - Defina a URI de redirecionamento: Configure para onde os usuários retornam após a autenticação
Exemplo de Implementação (PHP)
Aqui está um exemplo completo demonstrando como implementar o WordPress.com Connect para autenticação de usuários e recuperação de perfil.
Configuração Inicial
Primeiro, configure as credenciais da sua aplicação. Substitua esses valores pelos da sua Aplicação WordPress.com:
<?php
// config.php - WordPress.com Connect Configuration
define('CLIENT_ID', 'your_client_id');
define('CLIENT_SECRET', 'your_client_secret');
define('REDIRECT_URI', 'https://yourapp.com/auth-callback');
// WordPress.com OAuth2 endpoints (no changes needed)
define('AUTHENTICATE_URL', 'https://public-api.wordpress.com/oauth2/authenticate');
define('TOKEN_URL', 'https://public-api.wordpress.com/oauth2/token');
define('USER_INFO_URL', 'https://public-api.wordpress.com/rest/v1.1/me');
session_start(); // Required for state parameter security
?>Exemplo completo: Consulte o repositório wpcom-connect-examples para implementações em outras linguagens.
Etapa 1: Criar a URL de Autorização
Gere o botão “Conectar com WordPress.com” que redireciona os usuários ao WordPress.com para autenticação. Isso utiliza o endpoint de autenticação (não o endpoint de autorização padrão).
Nota de Segurança: O parâmetro state previne ataques CSRF e deve ser validado quando os usuários retornarem.
<?php
require_once 'config.php';
// Generate secure state parameter for CSRF protection
if (!isset($_SESSION['wpcc_state'])) {
$_SESSION['wpcc_state'] = bin2hex(random_bytes(16)); // More secure than md5(mt_rand())
}
// Build authentication URL using /oauth2/authenticate endpoint
$auth_url = AUTHENTICATE_URL . '?' . http_build_query([
'response_type' => 'code',
'client_id' => CLIENT_ID,
'redirect_uri' => REDIRECT_URI,
'state' => $_SESSION['wpcc_state'],
'scope' => 'auth' // Limited scope for profile access only
]);
// Display the Connect button
echo '<a href="' . htmlspecialchars($auth_url) . '">';
echo '<img src="https://s0.wp.com/i/wpcc-button.png?m=1391188133i" width="231" alt="Connect with WordPress.com" />';
echo '</a>';
?>Isso gera o familiar botão Conectar do WordPress.com:

Etapa 2: Tratar a Resposta de Autorização
Quando os usuários clicam no botão Conectar, eles veem uma tela de autorização do WordPress.com:

Após a aprovação, o WordPress.com redireciona os usuários de volta para o seu redirect_uri com um código de autorização. Seu handler de callback deve validar o parâmetro state e trocar o código por um token de acesso:
<?php
// auth-callback.php - Handle the authorization response
require_once 'config.php';
// Validate authorization response
if (!isset($_GET['code'])) {
die('Error: No authorization code received. User may have declined access.');
}
if (!isset($_GET['state']) || $_GET['state'] !== $_SESSION['wpcc_state']) {
die('Error: State mismatch. Possible CSRF attack detected.');
}
// Exchange authorization code for access token
$curl = curl_init(TOKEN_URL);
curl_setopt_array($curl, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'client_id' => CLIENT_ID,
'client_secret' => CLIENT_SECRET,
'code' => $_GET['code'],
'grant_type' => 'authorization_code',
'redirect_uri' => REDIRECT_URI
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => true
]);
$response = curl_exec($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($http_code !== 200) {
die('Error: Failed to obtain access token.');
}
$token_data = json_decode($response, true);
$access_token = $token_data['access_token'];
// Clean up session state
unset($_SESSION['wpcc_state']);
?>Resposta de token bem-sucedida:
{
"access_token": "your_access_token_here",
"token_type": "bearer",
"blog_id": 0,
"blog_url": "https://public-api.wordpress.com",
"scope": "auth"
}Observe o scope: "auth" — isso confirma que o token tem acesso limitado apenas para verificação de identidade.
Etapa 3: Recuperar o perfil do usuário
Com o token de acesso, recupere as informações de perfil do usuário a partir do endpoint /me/:
<?php
// Fetch user profile using the access token
function get_user_profile($access_token) {
$curl = curl_init(USER_INFO_URL);
curl_setopt_array($curl, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $access_token
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => true // Always verify SSL in production
]);
$response = curl_exec($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($http_code !== 200) {
throw new Exception('Failed to fetch user profile');
}
return json_decode($response, true);
}
// Get the user's WordPress.com profile
try {
$user_profile = get_user_profile($access_token);
// Store or process user information
$user_id = $user_profile['ID'];
$display_name = $user_profile['display_name'];
$email = $user_profile['email'];
$avatar_url = $user_profile['avatar_URL'];
$is_verified = $user_profile['verified'];
} catch (Exception $e) {
die('Error: ' . $e->getMessage());
}
?>Formato da resposta do perfil:
{
"ID": 12345,
"display_name": "Bob Smith",
"username": "bobsmith",
"email": "bob@example.com",
"primary_blog": 67890,
"avatar_URL": "https://gravatar.com/avatar/abc123?s=96",
"profile_URL": "https://en.gravatar.com/bobsmith",
"verified": true
}Etapa 4: Concluir a autenticação do usuário
Depois de obter o perfil do usuário, integre-o ao seu aplicativo:
<?php
// Complete user authentication flow
if ($is_verified) {
// User has verified their email - safe to trust profile data
$existing_user = find_user_by_wpcom_id($user_id);
if ($existing_user) {
// Log in existing user
login_user($existing_user);
redirect_to_dashboard();
} else {
// Create new account with WordPress.com profile data
$new_user = create_user([
'wpcom_id' => $user_id,
'username' => $user_profile['username'],
'email' => $email,
'display_name' => $display_name,
'avatar_url' => $avatar_url
]);
login_user($new_user);
redirect_to_welcome();
}
} else {
// Unverified email - handle with caution
redirect_to_verification_required();
}
?>Importante: Sempre verifique o flag verified antes de confiar nas informações do perfil. Contas não verificadas podem conter dados não confiáveis.
WordPress.com Connect vs OAuth2 completo
Entenda quando usar cada abordagem:
| Recurso | WordPress.com Connect | OAuth2 completo |
|---|---|---|
| Finalidade | Autenticação e identidade do usuário | Acesso completo à API e gerenciamento de conteúdo |
| Endpoint | /oauth2/authenticate | /oauth2/authorize |
| Escopo do token | auth (limitado a /me/) | Escopos personalizados (posts, media, etc.) |
| Casos de uso | “Fazer login com WordPress.com” | Gerenciamento de sites WordPress.com |
| Acesso a dados | Apenas perfil básico | Posts do blog, mídia, comentários, etc. |
Importante: Não use o mesmo aplicativo WordPress.com para autenticação via Connect e acesso completo à API. Os tokens do Connect são limitados ao endpoint /me/ e não podem acessar conteúdo do blog ou recursos de gerenciamento.
Última atualização: junho 18, 2026