aboutsummaryrefslogtreecommitdiffstats
path: root/users.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-02-28 20:38:37 -0800
committerAdam Soltys <[email protected]>2020-02-28 20:38:37 -0800
commitd59a1a4835a50f09d59d422168a86e4c7d97094d (patch)
treedf0190fb7f36de6147a6d43c8e016a5a7cde855a /users.js
parent24cc1b02b768b21ff013b52cb5b4e9e4a3fe4a22 (diff)
downloadcoinos-server-d59a1a4835a50f09d59d422168a86e4c7d97094d.tar.gz
coinos-server-d59a1a4835a50f09d59d422168a86e4c7d97094d.zip
2fa
Diffstat (limited to 'users.js')
-rw-r--r--users.js16
1 files changed, 11 insertions, 5 deletions
diff --git a/users.js b/users.js
index f3ec586b..4a584dc0 100644
--- a/users.js
+++ b/users.js
@@ -336,6 +336,8 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
});
app.post("/login", async (req, res) => {
+ let twofa = req.body.token;
+
try {
let user = await db.User.findOne({
where: {
@@ -351,6 +353,9 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
return res.status(401).end();
}
+ if (user.twofa && (typeof twofa === "undefined" || !authenticator.check(twofa, user.otpsecret)))
+ return res.status(401).send("2fa required");
+
let payload = { username: user.username };
let token = jwt.sign(payload, config.jwt);
res.cookie("token", token, { expires: new Date(Date.now() + 432000000) });
@@ -358,13 +363,14 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
user = pick(user, ...whitelist);
res.send({ user, token });
} catch (err) {
- console.log(err);
+ l(err);
res.status(401).end();
}
});
app.post("/facebookLogin", async (req, res) => {
- let { accessToken, userID, token } = req.body;
+ let { accessToken, userID } = req.body;
+ let twofa = req.body.token;
let url = `https://graph.facebook.com/debug_token?input_token=${accessToken}&access_token=${
config.facebook.appToken
@@ -405,7 +411,7 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
await gift(user);
}
- if (user.twofa && (token === undefined || !authenticator.check(token, user.otpsecret)))
+ if (user.twofa && (typeof twofa === "undefined" || !authenticator.check(twofa, user.otpsecret)))
return res.status(401).send("2fa required");
user.pic = (await axios.get(
@@ -415,8 +421,8 @@ module.exports = (addresses, auth, app, bc, db, emit) => {
await user.save();
let payload = { username: user.username };
- let jwtToken = jwt.sign(payload, config.jwt);
- res.cookie("token", jwtToken, { expires: new Date(Date.now() + 432000000) });
+ let token = jwt.sign(payload, config.jwt);
+ res.cookie("token", token , { expires: new Date(Date.now() + 432000000) });
res.send({ user, token });
} catch (err) {
l(err);