mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-31 21:01:33 +02:00
[web] last infrastructure conversions GitOrigin-RevId: ad1aff9b7df0610ed0303157d9e2c8032f32c02b
52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
import PasswordResetController from './PasswordResetController.mjs'
|
|
import AuthenticationController from '../Authentication/AuthenticationController.mjs'
|
|
import CaptchaMiddleware from '../../Features/Captcha/CaptchaMiddleware.mjs'
|
|
import { RateLimiter } from '../../infrastructure/RateLimiter.mjs'
|
|
import RateLimiterMiddleware from '../Security/RateLimiterMiddleware.mjs'
|
|
|
|
const rateLimiter = new RateLimiter('password_reset_rate_limit', {
|
|
points: 6,
|
|
duration: 60,
|
|
})
|
|
|
|
export default {
|
|
apply(webRouter) {
|
|
const rateLimit = RateLimiterMiddleware.rateLimit(rateLimiter, {
|
|
ipOnly: true,
|
|
})
|
|
|
|
webRouter.get(
|
|
'/user/password/reset',
|
|
PasswordResetController.renderRequestResetForm
|
|
)
|
|
webRouter.post(
|
|
'/user/password/reset',
|
|
rateLimit,
|
|
CaptchaMiddleware.validateCaptcha('passwordReset'),
|
|
PasswordResetController.requestReset
|
|
)
|
|
AuthenticationController.addEndpointToLoginWhitelist('/user/password/reset')
|
|
|
|
webRouter.get(
|
|
'/user/password/set',
|
|
rateLimit,
|
|
PasswordResetController.renderSetPasswordForm
|
|
)
|
|
webRouter.post(
|
|
'/user/password/set',
|
|
rateLimit,
|
|
PasswordResetController.setNewUserPassword
|
|
)
|
|
AuthenticationController.addEndpointToLoginWhitelist('/user/password/set')
|
|
|
|
webRouter.post(
|
|
'/user/reconfirm',
|
|
rateLimit,
|
|
CaptchaMiddleware.validateCaptcha('passwordReset'),
|
|
PasswordResetController.requestReset
|
|
)
|
|
},
|
|
|
|
rateLimiter,
|
|
}
|