budibase/packages/auth/src/index.js

53 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-04-07 12:33:16 +02:00
const passport = require("koa-passport")
const LocalStrategy = require("passport-local").Strategy
const JwtStrategy = require("passport-jwt").Strategy
// const GoogleStrategy = require("passport-google-oauth").Strategy
const CouchDB = require("./db")
const { StaticDatabases } = require("./db/utils")
2021-04-11 12:35:55 +02:00
const { jwt, local, google, authenticated } = require("./middleware")
const { Cookies, UserStatus } = require("./constants")
const { hash, compare } = require("./hashing")
const { getAppId, setCookie, getCookie, clearCookie, isClient } = require("./utils")
2021-04-11 12:35:55 +02:00
const {
generateUserID,
getUserParams,
getEmailFromUserID,
} = require("./db/utils")
2021-04-07 12:33:16 +02:00
// Strategies
passport.use(new LocalStrategy(local.options, local.authenticate))
passport.use(new JwtStrategy(jwt.options, jwt.authenticate))
// passport.use(new GoogleStrategy(google.options, google.authenticate))
passport.serializeUser((user, done) => done(null, user))
passport.deserializeUser(async (user, done) => {
const db = new CouchDB(StaticDatabases.USER.name)
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 = {
passport,
Cookies,
UserStatus,
2021-04-08 12:26:08 +02:00
StaticDatabases,
generateUserID,
getUserParams,
getEmailFromUserID,
hash,
compare,
getAppId,
setCookie,
getCookie,
2021-04-13 14:56:28 +02:00
clearCookie,
2021-04-11 12:35:55 +02:00
authenticated,
isClient,
}