Construint una aplicació Potenciada per Cursor Devlog Part 4 Autenticació: en aquest lliurament repassem la lògica d'autenticació que protegeix les nostres APIs i habilita sessions segures per a usuaris.
En el domini d'autenticació les peces principals són les credencials i la sessió. La credencial representa l'entrada necessària per iniciar sessió: email i contrasenya. La sessió és el resultat exitós de l'inici de sessió i conté dos tokens: access_token i refresh_token.
La responsabilitat del domini d'autenticació és la lògica de negoci: validar credencials, generar tokens JWT, gestionar la lògica de refresh i revocar tokens. Tot això es realitza sense dependre d'HTTP ni formats de transport per mantenir un domini pur i testeable.
Definició pràctica de Credencial: camps email i password validats abans de qualsevol procés. Bones pràctiques: no emmagatzemar credencials, validar ambdós camps i verificar la contrasenya contra el hash emmagatzemat de l'usuari. El mètode Verify compara la contrasenya proporcionada amb la contrasenya xifrada de l'usuari i retorna error si no coincideixen.
Objecte Sessió: inclou AccessToken i RefreshToken. AccessToken s'utilitza per accedir a APIs durant un període curt, RefreshToken per obtenir nous access tokens. Es recomana implementar rotació de refresh tokens per a més seguretat i evitar exposar detalls sensibles en logs.
Generem dos tokens i emmagatzemem la seva metadata a Redis per tenir control total del cicle de vida de cada token. L'objecte Sessió conté metadades com exp expiració, nbf not before, jti identificador únic, user_id identificador de l'usuari i link_id que enllaça un access token amb el seu refresh token per revocació conjunta.
Els tokens tenen regles de temps: l'access_token és de curta durada per exemple 2 hores; el refresh_token dura més per exemple 48 hores i pot estar bloquejat les primeres 2 hores mitjançant nbf per evitar refrescos prematurs.
Claus d'emmagatzematge a Redis: access:jti i refresh:jti que apunten a les metadades corresponents. Gràcies a Redis podem revocar tokens instantàniament; si s'elimina l'entrada associada, el token deixa de ser vàlid en la següent petició.
Per què importa aquesta arquitectura: permet aplicar expiració i not before, revocació immediata, revocar ambdós tokens utilitzant link_id i evitar confiar a cegues en tokens del client. Cada token es valida contra Redis per a més seguretat.
Casos d'ús implementats: login, refresh token i logout. En el login es reben email i password i es comproven davant d'un usuari temporal hardcodejat per a proves. Si la validació és correcta s'emet un parell de tokens: access i refresh amb els seus temps configurats.
En refresh token l'API rep el refresh token, valida nbf i exp, emet un nou parell de tokens i revoca el refresh token antic per fer-lo d'ús únic, mitigant el risc de reutilització per un atacant.
En logout l'API rep l'access token des de la capçalera Authorization Bearer, revoca l'access token i utilitza link_id per localitzar i revocar el refresh token associat, garantint que ambdós tokens quedin inutilitzables.
Per a l'assemblatge de dependències utilitzem Google Wire com a eina d'injecció de dependències. Amb Wire definim un conjunt UseCaseSet que agrupa configuració, client Redis, adaptador Redis, repositoris, generador de tokens i els casos d'ús d'autenticació. Wire construeix el contenidor final que facilita testing i evita cablejat manual de dependències.
Avantatges d'aquest enfocament: elimina el wiring manual de dependències, facilita proves canviant implementacions per mocks, evita dependències ocultes i manté el sistema modular i mantenible. UseCaseSet és el plànol i Wire el constructor que produeix un contenidor llest per utilitzar.
Aquest devlog utilitza de moment un usuari hardcodejat només per accelerar la demostració. La mecànica de tokens ja és d'estil producció i quan integrem la base de dades l'autenticació passarà a validar usuaris reals mantenint la mateixa lògica de sessions i revocació basada en Redis.
En Q2BSTUDIO som una empresa de desenvolupament de programari especialitzada en aplicacions a mida i programari a mida. Oferim experiència en intel·ligència artificial, ia per a empreses, agents IA, ciberseguretat, serveis cloud aws i azure, serveis intel·ligència de negoci i solucions amb power bi. Integrem seguretat, rendiment i bones pràctiques per lliurar productes escalables i alineats amb objectius de negoci.
Si busques integrar autenticació robusta en els teus projectes o desenvolupar aplicacions a mida amb capacitats d'intel·ligència artificial i ciberseguretat, en Q2BSTUDIO dissenyem arquitectures segures amb sessions controlades, rotació de refresh tokens i visibilitat operativa mitjançant emmagatzematge a Redis i monitoratge de serveis cloud aws i azure.
Paraules clau per millorar posicionament: aplicacions a mida programari a mida intel·ligència artificial ciberseguretat serveis cloud aws i azure serveis intel·ligència de negoci ia per a empreses agents IA power bi.
Pròxims passos: portar aquesta capa d'autenticació al nivell de presentació. Els endpoints REST i la documentació amb Swagger permetran que el món exterior consumeixi els nostres serveis de manera segura, mentre seguim reforçant aspectes com auditoria, mètriques i suport per a múltiples proveïdors cloud.
En resum, amb una capa d'autenticació basada en sessions, tokens JWT i emmagatzematge a Redis, més un contenidor de dependències construït amb Wire, obtenim un sistema modular, segur i llest per integrar-se en aplicacions a mida i solucions d'intel·ligència artificial ofertes per Q2BSTUDIO.


