· 8 years ago · Apr 12, 2018, 03:48 PM
1Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER auto_increment , `email` VARCHAR(255) NOT NULL DEFAULT 'abhinav@gmail.com' UNIQUE, `username` VARCHAR(255) NOT NULL UNIQUE, `password` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;
2Executing (default): SHOW INDEX FROM `users`
3Database is ready
4Executing (default): SELECT `id`, `email`, `username`, `password`, `createdAt`, `updatedAt` FROM `users` AS `users` WHERE `users`.`username` = 'foo' LIMIT 1;
5
6const express = require('express')
7const session = require('express-session')
8const passport = require('passport')
9const path = require('path')
10const http = require('http')
11
12const app = express()
13const server = http.createServer(app)
14const cookieparser = require('cookie-parser')
15const bodyParser = require('body-parser');
16app.set('views',path.join(__dirname , 'chat'));
17
18app.set('view engine','html');
19var port = process.env.PORT || 5898;
20app.use('/', express.static(path.join(__dirname, 'intro')));
21app.use('/profile', express.static(path.join(__dirname, 'chat')));
22require('./passport')(passport);
23require('./app/routes.js')(app, passport);
24app.use(express.json());
25app.use(session({
26 secret: 'project-session',
27 resave: true,
28 saveUninitialized:true
29}))
30
31app.use(passport.initialize())
32app.use(passport.session())
33
34server.listen(port, () => console.log("Server running on http://localhost:5898"))
35
36const express = require('express')
37const app = express();
38const route = express.Router()
39const path = require('path');
40const bodyParser = require('body-parser');
41const passport = require('passport-local');
42const Users = require('../db').Users;
43module.exports = function(app,passport)
44{
45
46app.use((bodyParser.urlencoded({ extended: false })))
47app.use(bodyParser.json());
48 app.get('/signup', function(req,res) {
49 res.render('../intro/index');
50 })
51 app.get('/login',function(req,res){
52 res.send({
53 username: req.body.username
54 })
55 })
56
57app.post('/signup', function(req,res){
58 var a = [req.body.email,req.body.username,req.body.password];
59 Users.findOne({
60 where: { email: a[0],
61 username: a[1],
62 password: a[2],
63 }
64
65 }).then(users => {
66 if (users) {
67 res.send({
68 url:'/'
69 })
70 }
71 else{
72 Users.create({
73 email: a[0],
74 username: a[1],
75 password: a[2],
76
77 }).then(users => {
78 res.send({
79 url:'/profile',
80 username: a[1]
81 })
82 })
83 }
84 })
85
86
87})
88app.post('/login', passport.authenticate('local'),
89function(req, res) {
90 res.send({
91 url:'/profile',
92 username:req.body.username
93 });
94 });
95
96app.get('/logout', function(req, res){
97 req.logout();
98 res.redirect('/');
99 });
100}
101
102const Sequelize = require('sequelize');
103
104const db = new Sequelize(
105 'socializedb',
106 'soc',
107 'socpass',
108
109 {
110 dialect: 'mysql',
111 host: 'localhost',
112 operatorsAliases: false,
113 }
114);
115
116const Users = db.define('users', {
117 id: {
118 type: Sequelize.INTEGER,
119 autoIncrement: true,
120 primaryKey: true,
121 },
122 email: {
123 type: Sequelize.STRING,
124 allowNull: false,
125 unique: true,
126 defaultValue: "abhinav@gmail.com"
127 },
128 username: {
129 type: Sequelize.STRING,
130 allowNull: false,
131 unique: true,
132 },
133 password: {
134 type: Sequelize.STRING,
135 allowNull: false,
136 }
137
138})
139
140
141db.sync().then(() => console.log("Database is ready"))
142
143exports = module.exports = {
144 db,
145 Users
146}
147
148const LocalStrategy = require('passport-local').Strategy
149const Users = require('./db').Users
150module.exports = function(passport)
151{
152 console.log("passport is working");
153passport.serializeUser(function (users, done) {
154 return done(null, users.id);
155 console.log("Serialize");
156
157})
158
159passport.deserializeUser(function (id, done) {
160 console.log("DeSerialize");
161 Users.findById(id).then((users) => {
162 console.log(users);
163 return done(null, users);
164 });
165})
166
167passport.use(new LocalStrategy(
168 function(username, password, done) {
169 Users.findOne({where:{ username: username} },
170 function(err, users) {
171 if (err) { return done(err); }
172 if (!users) {
173 return done(null, false, { message: 'Incorrect username.' });
174 }
175 if (!users.password === password) {
176 return done(null, false, { message: 'Incorrect password.' });
177 }
178 return done(null, users);
179 });
180 }
181));
182
183}