1
0
Fork 0
mirror of synced 2024-09-13 07:53:31 +12:00
budibase/packages/auth/src/index.js

85 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-04-07 22:33:16 +12:00
const passport = require("koa-passport")
const LocalStrategy = require("passport-local").Strategy
const JwtStrategy = require("passport-jwt").Strategy
2021-04-22 08:08:04 +12:00
const constants = require("./constants")
2021-04-21 23:12:22 +12:00
const { StaticDatabases, DocumentTypes } = require("./db/utils")
const { jwt, local, google, authenticated } = require("./middleware")
const { Cookies, UserStatus } = require("./constants")
const { hash, compare } = require("./hashing")
2021-04-15 03:01:28 +12:00
const {
getAppId,
setCookie,
getCookie,
clearCookie,
isClient,
} = require("./utils")
const { setDB, getDB } = require("./db")
2021-04-11 22:35:55 +12:00
const {
generateUserID,
getUserParams,
2021-04-19 22:34:07 +12:00
generateGroupID,
getGroupParams,
2021-04-11 22:35:55 +12:00
getEmailFromUserID,
2021-04-21 05:14:36 +12:00
generateConfigID,
getConfigParams,
2021-04-23 00:46:54 +12:00
determineScopedConfig,
2021-04-11 22:35:55 +12:00
} = require("./db/utils")
2021-04-07 22:33:16 +12:00
// Strategies
passport.use(new LocalStrategy(local.options, local.authenticate))
passport.use(new JwtStrategy(jwt.options, jwt.authenticate))
passport.serializeUser((user, done) => done(null, user))
passport.deserializeUser(async (user, done) => {
const db = getDB(StaticDatabases.GLOBAL.name)
2021-04-07 22:33:16 +12:00
try {
const user = await db.get(user._id)
return done(null, user)
} catch (err) {
console.error("User not found", err)
return done(null, false, { message: "User not found" })
}
})
module.exports = {
init(pouch) {
setDB(pouch)
},
db: require("./db/utils"),
utils: {
...require("./utils"),
2021-04-22 03:46:51 +12:00
...require("./hashing"),
},
auth: {
buildAuthMiddleware: authenticated,
passport,
2021-04-22 08:08:04 +12:00
middlewares: {
google,
},
},
2021-04-22 08:08:04 +12:00
constants,
passport,
Cookies,
UserStatus,
2021-04-21 23:12:22 +12:00
DocumentTypes,
2021-04-08 22:26:08 +12:00
StaticDatabases,
generateUserID,
getUserParams,
2021-04-20 03:16:46 +12:00
generateGroupID,
getGroupParams,
getEmailFromUserID,
2021-04-21 05:14:36 +12:00
generateConfigID,
getConfigParams,
2021-04-23 00:46:54 +12:00
determineScopedConfig,
hash,
compare,
getAppId,
setCookie,
getCookie,
2021-04-14 00:56:28 +12:00
clearCookie,
2021-04-11 22:35:55 +12:00
authenticated,
isClient,
}