Pular para o conteúdo principal

Inscreva-se com Oauth

Neste exemplo, demonstramos como se inscrever com Oauth

✅ Propósito do cenário:

  • O usuário se registra com o provedor OAuth (Google, Facebook, etc.)
  • Autenticar o usuário com o código de autorização OAuth
  • Obter dados do usuário autenticado após o fluxo OAuth bem-sucedido

✅ O que você precisa:

  • Um PROJECT_URL e APP_TOKEN válidos para autenticação com a API OneEntry.
  • Credenciais do provedor OAuth (client_id e client_secret) do Google, Facebook ou outro provedor.
  • Código de autorização obtido do redirecionamento do provedor OAuth.
  • redirect_uri configurado que corresponda ao registrado com o provedor OAuth.

📌 Importante:

  • Estes exemplos não incluem tratamento de erros.
  • Você pode gerenciar erros usando um bloco try-catch ou empregando uma construção como await Promise.catch((error) => error).
  • Certifique-se de que o formIdentifier usado no método updateUser() corresponda ao configurado em seu projeto OneEntry.

Cenário

1. Importe defineOneEntry do SDK e defina a url e o token

Exemplo:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'sua-url-do-projeto';
const APP_TOKEN = 'seu-token-do-app';

2. Criando um cliente API com a função defineOneEntry()

Exemplo:

const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. Registro do usuário com AuthProvider.oauthSignUp()

Dados:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Exemplo:

const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
Resultado:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.612Z",
"message": "Dados de permissão não encontrados. Forneça a permissão para a URL solicitada",
"pageData": null
}

4. Autenticação do usuário com AuthProvider.oauthSignUp()

Dados:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Exemplo:

const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
Resultado:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.792Z",
"message": "Dados de permissão não encontrados. Forneça a permissão para a URL solicitada",
"pageData": null
}

5. Agora você pode obter dados do usuário com Users.getUser()

Exemplo:

const userData = await Users.getUser();

Exemplo final

// 1. Importe defineOneEntry do SDK defina PROJECT_URL e APP_TOKEN
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'sua-url-do-projeto';
const APP_TOKEN = 'seu-token-do-app';

// 2. Criando um cliente API:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Registro do usuário com AuthProvider.oauthSignUp()
const body = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000"
};
const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
// console.log(JSON.stringify(signUpResponse));

// 4. Autenticação do usuário com AuthProvider.oauthSignUp()
const authBody = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000"
};
const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
// console.log(JSON.stringify(authResponse));

// 5. Agora você pode obter dados do usuário com Users.getUser()
const user = await Users.getUser().catch((e) => e);
// console.log(JSON.stringify(user));