OAuth 2.0 et Authentification
OAuth 2.0 est le standard pour l'autorisation securisee entre applications.
Les roles OAuth
- Resource Owner : L'utilisateur
- Client : L'application
- Authorization Server : Delivre les tokens
- Resource Server : API protegee
Flux Authorization Code
- L'utilisateur clique sur "Se connecter avec Google"
- Redirection vers Google avec client_id
- L'utilisateur autorise l'application
- Google redirige avec un code
- L'application echange le code contre un token
JSON Web Tokens (JWT)
// Structure d'un JWT
header.payload.signature
// Payload exemple
{
"sub": "1234567890",
"name": "Jean Dupont",
"iat": 1516239022,
"exp": 1516242622
}
Implementation avec Passport.js
passport.use(new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: "/auth/google/callback"
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ googleId: profile.id }, done);
}
));
Bonnes pratiques
- Toujours utiliser HTTPS
- Tokens a courte duree de vie
- Refresh tokens securises
- Valider les tokens cote serveur