diff options
| author | Adam Soltys <[email protected]> | 2021-01-13 15:46:53 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2021-01-13 16:11:11 -0800 |
| commit | 5cd96cc027be811116b147e0614aca39ce164c6b (patch) | |
| tree | a9d7d9096bc4ea5bb7049500571e9641b50177d7 /lib/passport.js | |
| parent | eb860d78b836d810f7c29d5587e17321adf20bef (diff) | |
| download | coinos-server-5cd96cc027be811116b147e0614aca39ce164c6b.tar.gz coinos-server-5cd96cc027be811116b147e0614aca39ce164c6b.zip | |
account locking mechanism
Diffstat (limited to 'lib/passport.js')
| -rw-r--r-- | lib/passport.js | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/passport.js b/lib/passport.js index b26b445e..70e002b9 100644 --- a/lib/passport.js +++ b/lib/passport.js @@ -4,7 +4,7 @@ const jwt = require("passport-jwt"); function cookieExtractor(req) { if (req && req.cookies) { return req.cookies["token"]; - } + } return null; } @@ -20,9 +20,14 @@ passport = Passport.use( async (payload, next) => { const { username } = payload; try { - next(null, await db.User.findOne({ where: { username }, include: { model: db.Account, as: 'account' } })); + let user = await db.User.findOne({ + where: { username }, + include: { model: db.Account, as: "account" } + }); + if (user.locked) throw new Error("account is locked"); + next(null, user); } catch (e) { - l.error("error finding user for session", e); + l.error("problem logging in", e); next(null, { username: "guest" }); } } @@ -31,8 +36,8 @@ passport = Passport.use( auth = passport.authenticate("jwt", { session: false }); -optionalAuth = function (req, res, next) { - passport.authenticate("jwt", { session: false }, function (err, user, info) { +optionalAuth = function(req, res, next) { + passport.authenticate("jwt", { session: false }, function(err, user, info) { req.user = user; next(); })(req, res, next); |
