AULA 41
MÓDULO 5
autenticação
⏱ 55 min
OAuth 2.0 e OpenID Connect
OAuth 2.0: autorização delegada. Fluxo Authorization Code. OIDC: ID Token. Login com Google via passport.js.
OAuth 2.0OIDCpassport.jsAuthorization CodescopeID Token
OAuth 2.0
OAuth 2.0 é um protocolo de autorização delegada. Permite que um aplicativo acesse recursos de outro em nome do usuário, sem que o usuário compartilhe sua senha.
"Login com Google"
Quando você clica em "Login com Google", o OAuth 2.0 está em ação. Você autoriza o app a acessar seu nome e email do Google. O app nunca vê sua senha do Google.FLUXO AUTHORIZATION CODE (mais comum)
1
App redireciona usuário para Google com client_id e scope
2
Google autentica o usuário e pede permissão
3
Google redireciona de volta com authorization_code
4
App troca code por access_token (server-to-server)
5
App usa access_token para acessar APIs do Google
OpenID Connect (OIDC)
OAuth 2.0 é para autorização. OIDC é uma camada sobre OAuth 2.0 que adiciona autenticação: o ID Token (JWT) contém informações do usuário.
na prática
Use uma biblioteca como passport.js, Auth0, ou Clerk. Implementar OAuth manualmente é complexo e propenso a falhas de segurança. Para apps novos, considere um auth provider gerenciado.
javascript
// OAuth com passport.js — Google Strategy const passport = require('passport') const { Strategy: GoogleStrategy } = require('passport-google-oauth20') passport.use(new GoogleStrategy({ clientID: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, callbackURL: '/auth/google/callback' }, async (accessToken, refreshToken, profile, done) => { let user = await db.findByGoogleId(profile.id) if (!user) { user = await db.create({ googleId: profile.id, email: profile.emails[0].value }) } done(null, user) })) // Rotas app.get('/auth/google', passport.authenticate('google', { scope: ['email', 'profile'] })) app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/login' }), (req, res) => { res.redirect('/dashboard') })
quiz · aula 41
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
OAuth 2.0 resolve qual problema?
QUESTÃO 02
Qual é o papel do Authorization Code no fluxo OAuth?
QUESTÃO 03
OIDC adiciona o quê ao OAuth 2.0?
0/3