✅ Implemented: - Password hashing with bcrypt (salt rounds = 10) - JWT token generation (access 15m, refresh 7d) - Updated login endpoint to return access + refresh tokens - Added refresh and logout endpoints - Updated seed script with hashed passwords - Added test users for all roles (OWNER, MANAGER, GROWER, STAFF) 📝 Files Added/Modified: - backend/src/utils/password.ts (NEW) - backend/src/utils/jwt.ts (NEW) - backend/src/controllers/auth.controller.ts (UPDATED) - backend/src/routes/auth.routes.ts (UPDATED) - backend/prisma/seed.js (UPDATED - now hashes passwords) - CREDENTIALS.md (UPDATED - all test users documented) 🔐 Test Users: - admin@runfoo.run (OWNER) - manager@runfoo.run (MANAGER) - grower@runfoo.run (GROWER) - staff@runfoo.run (STAFF) All passwords: password123 ⏭️ Next: Auth middleware + RBAC
34 lines
787 B
JSON
34 lines
787 B
JSON
{
|
|
"name": "ca-grow-ops-backend",
|
|
"version": "1.0.0",
|
|
"main": "dist/server.js",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "node dist/server.js",
|
|
"dev": "ts-node-dev src/server.ts",
|
|
"test": "jest",
|
|
"lint": "eslint src/**/*.ts"
|
|
},
|
|
"prisma": {
|
|
"seed": "node prisma/seed.js"
|
|
},
|
|
"dependencies": {
|
|
"@fastify/jwt": "^7.2.4",
|
|
"@prisma/client": "^5.7.0",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"bcrypt": "^6.0.0",
|
|
"dotenv": "^16.3.1",
|
|
"fastify": "^4.25.0",
|
|
"fastify-plugin": "^4.5.0",
|
|
"jsonwebtoken": "^9.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^20.10.0",
|
|
"eslint": "^8.56.0",
|
|
"jest": "^29.7.0",
|
|
"prisma": "^5.7.0",
|
|
"ts-node-dev": "^2.0.0",
|
|
"typescript": "^5.3.3"
|
|
}
|
|
}
|