12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /* global WIKI */
- const express = require('express')
- const router = express.Router()
- const moment = require('moment')
- const _ = require('lodash')
- /**
- * Login form
- */
- router.get('/login', function (req, res, next) {
- _.set(res.locals, 'pageMeta.title', 'Login')
- res.render('login')
- })
- /**
- * Logout
- */
- router.get('/logout', function (req, res) {
- req.logout()
- res.redirect('/')
- })
- /**
- * Register form
- */
- router.get('/register', async (req, res, next) => {
- _.set(res.locals, 'pageMeta.title', 'Register')
- const localStrg = await WIKI.models.authentication.getStrategy('local')
- if (localStrg.selfRegistration) {
- res.render('register')
- } else {
- next(new WIKI.Error.AuthRegistrationDisabled())
- }
- })
- /**
- * Verify
- */
- router.get('/verify/:token', async (req, res, next) => {
- const usr = await WIKI.models.userKeys.validateToken({ kind: 'verify', token: req.params.token })
- await WIKI.models.users.query().patch({ isVerified: true }).where('id', usr.id)
- const result = await WIKI.models.users.refreshToken(usr)
- res.cookie('jwt', result.token, { expires: moment().add(1, 'years').toDate() })
- res.redirect('/')
- })
- /**
- * JWT Public Endpoints
- */
- router.get('/.well-known/jwk.json', function (req, res, next) {
- res.json(WIKI.config.certs.jwk)
- })
- router.get('/.well-known/jwk.pem', function (req, res, next) {
- res.send(WIKI.config.certs.public)
- })
- module.exports = router
|