-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
54 lines (44 loc) · 1.76 KB
/
index.js
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
50
51
52
53
54
const expressSession = require('express-session')
const MongoStore = require('connect-mongo')(expressSession)
const MongoClient = require('mongodb').MongoClient
const cookieParser = require('cookie-parser')
const express = require('express')
const config = require('@femto-apps/config')
const favicon = require('serve-favicon')
const authenticationConsumer = require('@femto-apps/authentication-consumer')
const morgan = require('morgan')
;(async () => {
const app = express()
const port = config.get('port')
const db = (await MongoClient.connect(config.get('mongo.uri'), { useNewUrlParser: true })).db(config.get('mongo.db'))
app.set('view engine', 'pug')
app.use(express.static('public'))
app.use(cookieParser(config.get('cookie.secret')))
app.use(expressSession({
secret: config.get('session.secret'),
resave: false,
saveUninitialized: false,
store: new MongoStore({ db }),
name: config.get('cookie.name'),
cookie: {
maxAge: config.get('cookie.maxAge')
}
}))
app.use(morgan('dev'))
app.get('/favicon.ico', favicon('./favicon/favicon.ico'))
app.use(authenticationConsumer({
tokenService: { endpoint: config.get('tokenService.endpoint') },
authenticationProvider: { endpoint: config.get('authenticationProvider.endpoint'), consumerId: config.get('authenticationProvider.consumerId') },
authenticationConsumer: { endpoint: config.get('authenticationConsumer.endpoint') },
redirect: config.get('redirect')
}))
app.get('/', (req, res) => {
console.log(req.user)
res.render('home', { user: req.user } )
})
app.get('/loggedin', (req, res) => {
console.log(req.user)
res.render('loggedIn', { user: req.user })
})
app.listen(port, () => console.log(`Example app listening on port ${port}`))
})()