-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
98 lines (98 loc) · 3.19 KB
/
index.js
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
97
98
var express = require('express');
var bodyParser = require('body-parser');
var ejsLayouts = require('express-ejs-layouts');
var session = require('express-session');
var flash = require('connect-flash');
var db = require('./models');
var passport = require('passport');
var ig = require('instagram-node').instagram();
var strategies = require('./config/strategies');
var app = express();
// setting ejs
app.set('view engine', 'ejs');
// app.use calls (ejs Layouts, static files, body-parser, flash,
// express-session, passport, passport session)
app.use(ejsLayouts);
app.use(express.static(__dirname + '/static'));
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(flash());
app.use(session({
secret: 'super secret',
resave: false,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());
// console.log(process.env.INSTAGRAM_CLIENT_ID);
// console.log(process.env.INSTAGRAM_CLIENT_SECRET);
passport.serializeUser(strategies.serializeUser);
passport.deserializeUser(strategies.deserializeUser);
passport.use(strategies.instagramStrategy);
app.use(function(req, res, next) {
res.locals.currentUser = req.user;
res.locals.alerts = req.flash();
next();
});
// **************
// homepage route
// **************
app.get("/", function(req, res) {
res.render("index");
});
// *******************************************
// connects the user to Instagram sign-in page
// *******************************************
app.get('/auth/instagram', passport.authenticate('instagram'));
// ***************************************************
// authenticates and redirects user to their dashboard
// ***************************************************
app.get('/auth/instagram/callback', passport.authenticate('instagram', {
failureRedirect: '/error'
}), function(req, res) {
// Successful authentication, redirect home.
res.redirect('/user/' + req.user.id + '/dashboard');
});
// ***********************************
// error message if issues with log-in
// ***********************************
app.get('/loginerror', function(req, res) {
res.render("loginerror");
});
// ****************************************************
// error message if user doesn't have access permission
// ****************************************************
app.get('/permissionerror', function(req, res) {
res.render("permissionerror");
});
// ************************************
// error message if page does not exist
// ************************************
app.get('/invalidpage', function(req, res) {
res.render('nonexistentpage');
});
// ************************************
// logs out the user from their session
// ************************************
app.get('/logout', function(req, res) {
req.logout();
req.flash('info', 'You have been logged out.');
res.redirect('/');
});
// ************************
// accesses user controller
// ************************
app.use("/user/", require("./controllers/user"));
// *********************
// 404 error page return
// *********************
app.use(function(req, res, next) {
res.status(404);
res.redirect('/invalidpage');
next();
});
// *************
// port listener
// *************
app.listen(process.env.PORT || 3000);