Add option to specify mail providers which are not supported

This commit is contained in:
Jonas Lochmann 2019-09-09 00:00:00 +00:00
parent a7533b7864
commit 5987583ca3
No known key found for this signature in database
GPG key ID: 8B8C9AEE10FA5B36
3 changed files with 34 additions and 0 deletions

View file

@ -24,6 +24,7 @@ import {
isSendMailLoginCodeRequest,
isSignInByMailCodeRequest
} from './validator'
import { isMailServerBlacklisted } from '../util/mail'
export const createAuthRouter = (database: Database) => {
const router = Router()
@ -46,6 +47,28 @@ export const createAuthRouter = (database: Database) => {
}
})
router.post('/send-mail-login-code-v2', json(), async (req, res, next) => {
try {
if (!isSendMailLoginCodeRequest(req.body)) {
throw new BadRequest()
}
if (isMailServerBlacklisted(req.body.mail)) {
res.json({ mailServerBlacklisted: true })
} else {
const { mailLoginToken } = await sendLoginCode({
mail: req.body.mail,
locale: req.body.locale,
database
})
res.json({ mailLoginToken })
}
} catch (ex) {
next(ex)
}
})
router.post('/sign-in-by-mail-code', json(), async (req, res, next) => {
try {
if (!isSignInByMailCodeRequest(req.body)) {