Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var passport = require('passport')
- , LocalStrategy = require('passport-local').Strategy;
- import express = require('express');
- var session = require('express-session');
- let bodyParser = require('body-parser');
- const router = express.Router();
- var bcrypt = require('bcryptjs');
- var cors = require('cors');
- import flash = require('connect-flash');
- router.use(cors());
- router.use(flash());
- router.use(passport.initialize());
- router.use(passport.session());
- var pgSession = require('connect-pg-simple')(session);
- router.use(session({
- store: new pgSession({
- conString : MyConn
- }),
- secret: 'mysessionsecret',
- resave: true,
- cookie: {
- maxAge: 7 * 24 * 60 * 60 * 1000
- },
- secure : true,
- proxy: true,
- saveUninitialized: true
- }));
- router.use(bodyParser.json());
- router.use(bodyParser.urlencoded({ extended: true }));
- router.use(function (req, res, next) {
- res.header("Access-Control-Allow-Origin", "*");
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
- res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
- res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
- next();
- });
- const { Pool } = require('pg');
- const connectionString =
- 'MyConn';
- const pool = new Pool({
- connectionString: connectionString,
- });
- passport.use(new LocalStrategy(
- async (username, password, done) => {
- console.log("Login process:", username);
- let client;
- var sql: string = "SELECT id, username, password FROM users WHERE username=$1";
- //client = pool.connect();
- try {
- client = await pool.connect();
- let result = await client.query(sql, [username]);
- console.log(result.rows, "Hello");
- var hashedPass: string = result.rows[0].password;
- console.log('HasedPass:', hashedPass);
- bcrypt.compare(password, hashedPass, (err, res) => {
- if (res) {
- console.log('res:', res);
- return done(null, result.rows[0], { message: "Users" });
- } else {
- console.log('err:', err);
- return done(null, false, { message: 'Wrong user name or password ->' });
- }
- })
- } catch (e) {
- console.log("/login: " + e);
- return done(null, false, { message: 'Wrong user name or password <-'
- });
- } finally {
- client.release();
- }
- }));
- passport.serializeUser((user, done) => {
- console.log("serialize:", user);
- done(null, user.user_id);
- });
- passport.deserializeUser((id, done) => {
- console.log("deserualize:", id);
- // done(null, id);
- let client;
- client = pool.connect();
- return client.query("SELECT id, username, password, FROM users WHERE id = $1", [id])
- .then((user) => {
- //log.debug("deserializeUser ", user);
- done(null, user);
- })
- .catch((err) => {
- done(new Error(`User with the id ${id} does not exist`));
- })
- });
- router.post('/', passport.authenticate('local', { successRedirect: '/',
- failureRedirect: '/login', failureFlash: true }),
- function (req, res) {
- console.log('SESSION:', req.session);
- if ( !req.session.views){
- req.session.views = 1;
- }else{
- req.session.views += 1;
- }
- res.json({
- "status" : "ok",
- "frequency" : req.session.views
- });
- });
- export default router;
Add Comment
Please, Sign In to add comment