v1/route/auth.js   A
last analyzed

Complexity

Total Complexity 11
Complexity/F 1.1

Size

Lines of Code 67
Function Count 10

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 11
eloc 40
mnd 1
bc 1
fnc 10
dl 0
loc 67
rs 10
bpm 0.1
cpm 1.1
noi 1
c 0
b 0
f 0
1
const express = require('express');
2
const passport = require('passport');
3
const router = express.Router();
4
const authModel = require("../models/auth.js");
5
6
router.get("/login/google", passport.authenticate("google", { scope: ["profile", "email"] }))
7
8
router.get("/google/callback", passport.authenticate("google", {
9
        failureMessage: "Cannot login to Google, please try again later!",
10
        failureRedirect: process.env.GOOGLE_FAILURE_URL,
11
        successRedirect: process.env.GOOGLE_SUCCESS_URL,
12
    })
13
);
14
15
router.post("/login/server/admin",
16
    (req, res) => authModel.adminLogin(res, req.body, req.path)
17
);
18
19
router.post("/login/server/user",
20
    (req, res) => authModel.userLogin(res, req.body, req.path)
21
);
22
23
router.get("/login/google/error",
24
(req, res) => {
25
    res.status(401).json({
26
        errors: {
27
            status: 401,
28
            title: "Login error",
29
            detail: "ERROR"
30
        }
31
    });
32
});
33
34
router.get("/login/google/success",
35
(req, res, next) => authModel.validTokenKey(req, res, next),
36
(req, res) => {
37
    res.status(201).json({
38
        data: {
39
            message: "User successfully login."
40
        }
41
    });
42
});
43
44
router.get("/logout/google",
45
(req, res, next) => {
46
    req.logout(function(err) {
47
        if (err) { return next(err); }
48
        res.status(201).json({
49
            data: {
50
                message: "User successfully logout."
51
            }
52
        });
0 ignored issues
show
Best Practice introduced by
There is no return statement in this branch, but you do return something in other branches. Did you maybe miss it? If you do not want to return anything, consider adding return undefined; explicitly.
Loading history...
53
      });
54
});
55
56
router.get("/google/user",
57
    (req, res, next) => authModel.validTokenKey(req, res, next),
58
    (req, res) => res.json(req.user)
59
);
60
61
router.get("/google/user/token",
62
    passport.authenticate('google-oauth-token'),
63
    (req, res) => res.json(req.user)
64
);
65
66
67
module.exports = router;