feat(GRO-2425): split CORS_ORIGIN on commas for multiple trusted auth origins #216
@@ -108,6 +108,8 @@ Expected: one row, `role = 'groomer'`. If zero rows return, the request hit the
|
||||
| TC-API-1.24 | Complete setup creates super user | POST /api/setup with business name (after TC-API-1.23) | First user becomes super user, setup completes | Setup errors, 403 on admin endpoints |
|
||||
| TC-API-1.25 | Super user accesses admin features | After TC-API-1.24, GET /api/staff/me and verify isSuperUser: true | isSuperUser: true, admin endpoints accessible | 403 on admin, isSuperUser: false |
|
||||
| TC-API-1.26 | Auto-provision skipped during OOBE | During fresh setup (needsSetup: true), complete OIDC login — verify no duplicate staff record created before setup completes | No duplicate staff, OOBE completes successfully | Duplicate staff record, 403 before setup, auto-provision interferes with OOBE |
|
||||
| TC-API-1.27 | Multi-origin CORS — demo host sign-in | `POST /api/auth/sign-in/social` with `callbackURL=https://demo.groombook.dev` | 200 OK, no origin-mismatch error | 400/403 "Origin mismatch" |
|
||||
| TC-API-1.28 | Multi-origin CORS — farh.net host sign-in | `POST /api/auth/sign-in/social` with `callbackURL=https://groombook.farh.net` | 200 OK, no origin-mismatch error | 400/403 "Origin mismatch" |
|
||||
|
||||
### 4.2 Client Management
|
||||
|
||||
|
||||
+4
-2
@@ -118,7 +118,8 @@ export async function initAuth(): Promise<void> {
|
||||
updateAge: 60 * 60 * 24,
|
||||
cookieCache: { enabled: false },
|
||||
},
|
||||
trustedOrigins: [process.env.CORS_ORIGIN ?? "http://localhost:5173"],
|
||||
trustedOrigins: (process.env.CORS_ORIGIN ?? "http://localhost:5173")
|
||||
.split(",").map((s) => s.trim()).filter(Boolean),
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -308,7 +309,8 @@ export async function initAuth(): Promise<void> {
|
||||
maxAge: 5 * 60, // 5 minutes
|
||||
},
|
||||
},
|
||||
trustedOrigins: [process.env.CORS_ORIGIN ?? "http://localhost:5173"],
|
||||
trustedOrigins: (process.env.CORS_ORIGIN ?? "http://localhost:5173")
|
||||
.split(",").map((s) => s.trim()).filter(Boolean),
|
||||
});
|
||||
})();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user