2022-10-29 22:21:24 +02:00
|
|
|
//import bodyParser from 'body-parser'
|
|
|
|
import cors from 'cors'
|
2022-11-05 18:55:59 +01:00
|
|
|
import http from 'passport-http'
|
2022-10-29 22:21:24 +02:00
|
|
|
import jwt from 'passport-jwt'
|
2022-11-05 18:55:59 +01:00
|
|
|
import { ApikeyModel } from './models/apikey.mjs'
|
2022-10-29 22:21:24 +02:00
|
|
|
|
|
|
|
function loadExpressMiddleware(app) {
|
|
|
|
// FIXME: Is this still needed in FreeSewing v3?
|
|
|
|
//app.use(bodyParser.urlencoded({ extended: true }))
|
|
|
|
app.use(cors())
|
|
|
|
}
|
|
|
|
|
2022-11-05 18:55:59 +01:00
|
|
|
function loadPassportMiddleware(passport, tools) {
|
|
|
|
passport.use(
|
|
|
|
new http.BasicStrategy(async (key, secret, done) => {
|
|
|
|
const Apikey = new ApikeyModel(tools)
|
|
|
|
await Apikey.verify(key, secret)
|
|
|
|
return Apikey.verified ? done(null, { ...Apikey.record, apikey: true }) : done(false)
|
|
|
|
})
|
|
|
|
)
|
2022-10-29 22:21:24 +02:00
|
|
|
passport.use(
|
|
|
|
new jwt.Strategy(
|
|
|
|
{
|
|
|
|
jwtFromRequest: jwt.ExtractJwt.fromAuthHeaderAsBearerToken(),
|
2022-11-05 18:55:59 +01:00
|
|
|
...tools.config.jwt,
|
2022-10-29 22:21:24 +02:00
|
|
|
},
|
|
|
|
(jwt_payload, done) => {
|
|
|
|
return done(null, jwt_payload)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2022-10-29 22:25:00 +02:00
|
|
|
export { loadExpressMiddleware, loadPassportMiddleware }
|