-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
96 lines (80 loc) · 2.38 KB
/
server.js
File metadata and controls
96 lines (80 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const express = require('express');
const bodyParser = require('body-parser');
const mongodb = require('./data/database');
const passport = require("passport");
const session = require("express-session");
const GitHubStrategy = require("passport-github2").Strategy;
const cors = require("cors");
const app = express();
const port = process.env.PORT || 3000;
app
.use(bodyParser.json())
.use(
session({
secret: "secret",
resave: false,
saveUninitialized: true,
})
)
.use(passport.initialize())
.use(passport.session())
const dotentv = require(('dotenv'));
dotentv.config();
app.use((req, res, next) =>{
res.setHeader('Access-Control-Origin', '*');
res.setHeader(
'Access-Control-Allow-Header',
'Origin, X-Requested-with, Content-Type, Accept, Z-Key'
);
res.setHeader('access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
next();
});
app.use(cors({ methods: ['GET', 'POST', 'PUT', 'DELETE', 'UPDATE', 'PATCH'] }))
.use(cors({ origin: '*' }))
.use('/', require('./routes/index.js'));
app.use('/', require('./routes/index.js'));
passport.use(
new GitHubStrategy,
{
clientID: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
callbackURL: process.env.CALLBACK_URL,
},
function (accessToken, refeshToken, profile, done) {
//User.findOrCreate({githubId: profile.id}, function(err, user) {
return done(null, profile);
// });
}
);
passport.serializeUser((user, done) => {
done(null, user);
});
passport.deserializeUser((user, done) => {
done(null, user);
});
app.get("/", (req, res) => {
res.send(
req.session.user !== undefined
? `Logged in as ${req.session.user.displayName || req.session.user.username}`
: "Logged Out"
);
});
app.get(
"/github/callback",
passport.authenticate("github", {
failureRedirect: "/api-docs",
session: false,
}),
(req, res) => {
req.session.user = req.user;
res.redirect("/");
}
);
mongodb.initDb((err)=> {
if(err){
console.log(err);
}
else {
app.listen(port, () => {console.log(`Database is listening and running on port ${port} `)});
}
});