Executando verificação de segurança...
1

Fluxo de OAuth 2.0 Password Grant

Oi, sou Vinicius Teixeira e estou começando minha carreira como programador.

Recentemente, me deparei com um tema desafiador na empresa onde trabalho: OAuth 2.0 Password Grant. Decidi dedicar uma semana para entender como esse fluxo funciona e como posso aplicá-lo em projetos futuros.

O OAuth 2.0 Password Grant é um fluxo de autenticação e autorização que permite ao aplicativo cliente (por exemplo, um aplicativo mobile) obter um token de acesso diretamente, utilizando as credenciais do usuário (como email e senha). Esse fluxo é simples e geralmente utilizado quando o cliente e o servidor pertencem ao mesmo domínio de confiança.

Atenção: Utilize Sempre HTTPS

Antes de entrar nos detalhes do OAuth 2.0 Password Grant, é crucial destacar que todas as comunicações entre cliente e servidor devem ser feitas usando o protocolo HTTPS. O HTTPS garante que os dados sensíveis, como email e senha, sejam transmitidos de forma segura, protegendo-os contra ataques de interceptação (como o man-in-the-middle).
Sem o HTTPS, as credenciais do usuário poderiam ser capturadas durante a transmissão, comprometendo completamente a segurança do sistema.


Entendendo o Fluxo no Aplicativo Mobile

1. Autenticação e Autorização

Passo 1: Credenciais

No aplicativo (cliente), o usuário preenche um formulário com seu email e sua senha:

Quando o usuário pressiona o botão de login, os dados são enviados para um endpoint, por exemplo:

POST https://www.tabnews.com.br/api/v1/sessions

Os dados normalmente são enviados como JSON, com o seguinte formato:

{
  "email": "[email protected]",
  "password": "minha-senha-secreta"
}
Passo 2: Validação das Credenciais

O backend recebe o email e a senha, verifica se são válidos e, caso estejam corretos, retorna uma resposta com:

  • ID da sessão
  • Token de acesso
  • Data de expiração do token

Exemplo de resposta:

{
  "id": "4825954c-679c-4304-9ca6-e69c5ad79f22",
  "token": "YOUR_ACCESSTOKEN",
  "expires_at": "2025-01-01T23:26:07.727Z",
  "created_at": "2024-12-02T23:26:07.731Z",
  "updated_at": "2024-12-02T23:26:07.731Z"
}

Agora que você recebeu o token de acesso, o que fazer com ele?


2. Armazenamento do Token no Dispositivo

Assim que o token é recebido, ele deve ser armazenado localmente de forma segura no cliente. Boas práticas incluem o uso de APIs específicas para armazenamento seguro:

  • Keychain no iOS
  • Secure Storage no Android

Mas por que é importante armazenar o token de forma segura? Porque o token é a chave que permite ao cliente acessar recursos protegidos. Se o token for comprometido, um atacante poderá usá-lo para realizar ações em nome do usuário.


3. Utilização do Token

Após o usuário ser autenticado, todas as próximas requisições que exigem autorização devem usar o token de acesso. Este token geralmente é enviado no cabeçalho das requisições HTTP, no formato:

Authorization: Bearer YOUR_ACCESSTOKEN

Fique à vontade para responder a este artigo!

Se tiverem alguma dúvida, sugestão ou crítica construtiva, não hesitem em compartilhar. Adoraria ouvir a opinião de vocês!

Carregando publicação patrocinada...
1
2

Valeu pelo comentário e pelos links! 🙌

Você trouxe uns pontos muito importantes que eu não tinha considerado, tipo o Password Grant ser algo legado e já não recomendado nas práticas atuais.
Eu ainda tô no começo da minha carreira e confesso que ainda não estudei tanto sobre o Authorization Code Grant com PKCE, mas com certeza vou dar uma boa olhada nisso!

Brigadão mesmo por compartilhar essas informações! Se tiver mais dicas ou materiais sobre o tema, manda aí, que vou adorar aprender mais. 🚀