Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created by edisoni on 04.03.16.
- */
- var express = require('express');
- var app = express();
- var port = process.env.PORT || 3000;
- const jwt = require('jsonwebtoken');
- const passport = require('passport');
- const Strategy = require('passport-local');
- var morgan = require('morgan');
- app.use(morgan('combined'))
- app.use(passport.initialize());
- passport.use(new Strategy(
- function (username, password, done) {
- console.log(username);
- // database dummy - find user and verify password
- if (username === 'Edisoni' && password === '666') {
- done(null, {
- id: 666,
- firstname: 'Edisoni',
- lastname: 'name',
- email: 'edi@mail.ru',
- verified: true
- });
- }
- else {
- done(null, false);
- }
- }
- ));
- function serialize(req, res, next) {
- console.log('serialize');
- db.updateOrCreate(req.user, function(err, user){
- if(err) {return next(err);}
- // we store the updated information in req.user again
- req.user = {
- id: user.id
- };
- next();
- });
- }
- const db = {
- updateOrCreate: function(user, cb){
- // db dummy, we just cb the user
- cb(null, user);
- }
- };
- function generateToken(req, res, next) {
- req.token = jwt.sign({
- id: req.user.id,
- }, 'server secret', {
- expiresInMinutes: 120
- });
- next();
- }
- function respond(req, res) {
- res.status(200).json({
- user: req.user,
- token: req.token
- });
- }
- app.post('/auth',
- passport.authenticate( 'local', {
- session: false
- }), serialize, generateToken, respond);
- app.listen(port, function () {
- console.log('Listening on port ', port)
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement