Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var router = express.Router();
- var passport = require('passport');
- var User = require('../models/user');
- var Verify = require('./verify');
- /* GET users listing. */
- router.get('/', function(req, res, next) {
- res.send('respond with a resource');
- });
- router.post('/register', function(req, res) {
- User.register(new User({ username : req.body.username,email: req.body.email, phone:req.body.phone }),req.body.password,
- function(err, user) {
- if (err) {
- return res.status(500).json({err: err});
- }
- passport.authenticate('local')(req, res, function () {
- return res.status(200).json({status: 'Registration Successful!'});
- });
- });
- });
- router.post('/login', function(req, res, next) {
- passport.authenticate('local', function(err, user, info) {
- if (err) {
- return next(err);
- }
- if (!user) {
- return res.status(401).json({
- err: info
- });
- }
- req.logIn(user, function(err) {
- if (err) {
- return res.status(500).json({
- err: 'Could not log in user'
- });
- }
- var token = Verify.getToken(user);
- res.status(200).json({
- status: 'Login successful!',
- success: true,
- token: token
- });
- });
- })(req,res,next);
- });
- router.get('/logout', function(req, res) {
- req.logout();
- res.status(200).json({
- status: 'Bye!'
- });
- });
- module.exports = router;
- var User=require('../models/user');
- var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
- var config = require('../config.js');
- exports.getToken = function (user) {
- return jwt.sign(user, config.secretKey, {
- expiresIn: 3600
- });
- };
- exports.verifyOrdinaryUser = function (req, res, next) {
- // check header or url parameters or post parameters for token
- var token = req.body.token || req.query.token || req.headers['x-access-token'];
- // decode token
- if (token) {
- // verifies secret and checks exp
- jwt.verify(token, config.secretKey, function (err, decoded) {
- if (err) {
- var err = new Error('You are not authenticated!');
- err.status = 401;
- return next(err);
- } else {
- // if everything is good, save to request for use in other routes
- req.decoded = decoded;
- next();
- }
- });
- } else {
- // if there is no token
- // return an error
- var err = new Error('No token provided!');
- err.status = 403;
- return next(err);
- }
- };
- module.exports = {
- 'secretKey': '12345-67890-09876-54321',
- 'mongoUrl' : 'mongodb://localhost:27017/conFusion'
- }
- var mongoose = require('mongoose');
- var Schema = mongoose.Schema;
- var passportLocalMongoose = require('passport-local-mongoose');
- var User= new Schema({
- username:{
- type:String,
- required:true,
- unique:true
- },
- email:{
- type:String,
- required:true,
- unique:true
- },
- phone:{
- type:Number,
- required:true,
- unique:true
- },
- password:{
- type:String
- }
- });
- User.plugin(passportLocalMongoose);
- module.exports = mongoose.model('User',User);
- var express = require('express');
- var path = require('path');
- var favicon = require('serve-favicon');
- var logger = require('morgan');
- var cookieParser = require('cookie-parser');
- var bodyParser = require('body-parser');
- var mongoose = require('mongoose');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- var config = require('./config');
- mongoose.connect(config.mongoUrl);
- var db = mongoose.connection;
- db.on('error', console.error.bind(console, 'connection error:'));
- db.once('open', function () {
- console.log("Connected correctly to server");
- });
- var users = require('./routes/users');
- var app = express();
- // view engine setup
- app.set('views', path.join(__dirname, 'views'));
- app.set('view engine', 'jade');
- // uncomment after placing your favicon in /public
- //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
- app.use(logger('dev'));
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({ extended: false }));
- app.use(cookieParser());
- app.use(express.static(path.join(__dirname, 'public')));
- var User = require('./models/user');
- app.use(passport.initialize());
- passport.use(new LocalStrategy(User.authenticate()));
- passport.serializeUser(User.serializeUser());
- passport.deserializeUser(User.deserializeUser());
- app.use('/users', users);
- // catch 404 and forward to error handler
- app.use(function(req, res, next) {
- var err = new Error('Not Found');
- err.status = 404;
- next(err);
- });
- // error handler
- app.use(function(err, req, res, next) {
- // set locals, only providing error in development
- res.locals.message = err.message;
- res.locals.error = req.app.get('env') === 'development' ? err : {};
- // render the error page
- res.status(err.status || 500);
- res.render('error');
- });
- app.listen(3000,function(){
- console.log("Server Listening on 3000");
- });
- module.exports = app;
- +app.js
- +config.js
- +routes(directory)
- ++user.js
- ++verify.js
- +models(directory)
- ++user.js
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement