forked from Deen-Bridge/dnb-backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauthRoutes.js
More file actions
49 lines (43 loc) · 1.6 KB
/
Copy pathauthRoutes.js
File metadata and controls
49 lines (43 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// routes/authRoutes.js
import express from "express";
import {
registerUser,
loginUser,
refreshSession,
getSessions,
revokeSession,
revokeAllOtherSessions,
logoutUser,
requestPasswordReset,
resetPassword,
changePassword,
verifyEmail,
resendVerification,
} from "../controllers/authController.js";
import {
getStellarChallenge,
verifyStellarChallenge,
} from "../controllers/stellar/sep10Controller.js";
import { protect } from "../middlewares/authMiddleware.js";
import { refreshLimiter } from "../middlewares/security.js";
const router = express.Router();
// Public routes with auth rate limit
router.post("/register", registerUser);
router.post("/login", loginUser);
router.post("/request-password-reset", requestPasswordReset);
router.post("/reset-password", resetPassword);
router.get("/verify-email/:token", verifyEmail);
router.post("/resend-verification", resendVerification);
// Stellar SEP-10 Web Authentication ("Sign in with Stellar"). Returns 503 when
// the feature is unconfigured (SEP10_SIGNING_SECRET/domains unset). See #25.
router.get("/stellar/challenge", getStellarChallenge);
router.post("/stellar/verify", verifyStellarChallenge);
// Token refresh route with dedicated refresh rate limit
router.post("/refresh", refreshLimiter, refreshSession);
// Protected session management routes
router.post("/logout", protect, logoutUser);
router.get("/sessions", protect, getSessions);
router.delete("/sessions/:sessionId", protect, revokeSession);
router.delete("/sessions", protect, revokeAllOtherSessions);
router.put("/change-password", protect, changePassword);
export default router;