47fff0e1ee
Updated marketing Added some keyboard shortcuts Added settings page Added accent theming Added beta 2FA
76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
var express = require('express')
|
|
var router = express.Router()
|
|
|
|
const User = require('@models/User')
|
|
const Auth = require('@helpers/Auth')
|
|
const cs = require('@helpers/CryptoString')
|
|
|
|
// middleware that is specific to this router
|
|
router.use(function timeLog (req, res, next) {
|
|
// console.log('Time: ', Date.now())
|
|
next()
|
|
})
|
|
|
|
// Login User
|
|
router.post('/login', function (req, res) {
|
|
|
|
User.login(req.body.username, req.body.password, req.body.authToken)
|
|
.then( returnData => {
|
|
res.send(returnData)
|
|
})
|
|
})
|
|
// Logout User
|
|
router.post('/logout', function (req, res) {
|
|
|
|
User.logout(req.headers.sessionId)
|
|
.then( returnData => {
|
|
res.send(true)
|
|
})
|
|
})
|
|
|
|
// Register User
|
|
router.post('/register', function (req, res) {
|
|
|
|
User.register(req.body.username, req.body.password)
|
|
.then( returnData => {
|
|
|
|
res.send(returnData)
|
|
})
|
|
.catch(e => {
|
|
res.send(false)
|
|
})
|
|
})
|
|
|
|
// fetch counts of users notes
|
|
router.post('/totals', function (req, res) {
|
|
User.getCounts(req.headers.userId)
|
|
.then( countsObject => res.send( countsObject ))
|
|
})
|
|
|
|
//
|
|
// Two Factor Auth Setup
|
|
//
|
|
router.post('/twofactorsetup', function (req, res) {
|
|
|
|
//Send QR code to user for 2FA setup
|
|
Auth.generateTwoFactorSecretKey(req.headers.userId, req.body.password)
|
|
.then( ({ qrCode }) => { res.send( qrCode ) })
|
|
})
|
|
|
|
router.post('/verifytwofactorsetuptoken', function (req, res) {
|
|
|
|
//Verify Users QR code with token
|
|
Auth.setTwoFactorEnabled(req.headers.userId, req.body.password, req.body.token, true)
|
|
.then( ( results ) => { res.send( results ) })
|
|
})
|
|
|
|
router.post('/validatetwofactortoken', function (req, res) {
|
|
|
|
//Verify Users QR code with token
|
|
Auth.validateTwoFactorToken(req.headers.userId, req.body.password, req.body.token)
|
|
.then( ( results ) => { res.send( results ) })
|
|
})
|
|
|
|
|
|
|
|
module.exports = router |