OAuth2

Advanced Ecosystem 🟡 Mid

Definition

Protocole d'autorisation déléguée permettant à une app d'accéder aux ressources d'un utilisateur sans connaître son mot de passe. Définit plusieurs flows selon le contexte.

Analogie

Donner un passe limité au plombier pour accéder à la salle de bain sans lui donner les clés de toute la maison.

Exemple de code

// Authorization Code flow (redirect)
const authUrl = `https://auth.example.com/authorize
  ?response_type=code
  &client_id=${CLIENT_ID}
  &redirect_uri=${REDIRECT}
  &scope=read:profile
  &state=${csrfToken}`;

Cas d'usage

Permettre le 'Login with Google/GitHub' ou accéder aux APIs tierces au nom de l'utilisateur.

Anti-pattern

Utiliser le flow Implicit (déprécié) au lieu d'Authorization Code + PKCE pour les SPA.

Termes lies

#security#authentication