Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var app = express();
- var bodyParser = require('body-parser');
- var morgan = require('morgan');
- var cors=require('cors');
- var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
- var config = require('../../config'); // get our config file
- var User = require('../../app/models/User'); // get our mongoose model
- var port = process.env.PORT || 1991; // used to create, sign, and verify tokens
- mongoose.connect(config.database, { useMongoClient: true }); // connect to database
- app.set('superSecret', config.secret); // secret variable
- app.use(bodyParser.urlencoded({ extended: true }));
- app.use(bodyParser.json());
- app.use(morgan('dev'));
- app.use(cors());
- module.exports = {
- isAthenticated: function (req, res, next){
- var token = req.body.token || req.query.token || req.headers['x-access-token'];
- if (token) {
- // verifies secret and checks exp
- jwt.verify(token, app.get('superSecret'), function(err, decoded) {
- console.log([err,decoded]);
- if (err) { //failed verification.
- return res.json({"error": true, success:false, message:'Faild to authenticate token'});
- }
- req.decoded = decoded;
- next(); //no error, proceed
- });
- } else {
- // forbidden without token
- return res.status(403).send({
- success: false,
- message: 'No token provided.'
- });
- }
- }
- }
- var express=require('express');
- var router=express.Router();
- var passport= require('passport');
- var jwt=require('jsonwebtoken');
- var userRoutes = express.Router();
- var config = require('../../config'); // get our config file
- var User = require('../../app/models/User'); // get our mongoose model
- var middlewares = require('../../app/middleware/middlewares');
- //
- // ─── ROUTE TO REGISTER USER ──────────────────────────────────────────────────────────────────────
- //
- userRoutes.post('/signup',function(req, res,next) {
- if (!req.body.email || !req.body.password || !req.body.firstname || !req.body.lastname || !req.body.gender || !req.body.isTrainer) {
- res.json({ success: false, msg: 'set up required fields' });
- } else {
- var newUser = new User({
- email: req.body.email,
- password: req.body.password,
- firstname: req.body.firstname,
- lastname: req.body.lastname,
- gender: req.body.gender,
- isTrainer: req.body.isTraine
- });
- User.find({ email: req.body.email}, function(err, user){
- if (err) {
- res.send({ success: false, msg:'authentication error'})
- }
- else if (user.length != 0) {
- res.send({success: false, msg:'Email already exists'})
- console.log(user);
- }else {
- // save the user
- newUser.save(function(err) {
- if (err) {
- console.log(err);
- }else {
- res.send({ success: true, msg: 'Your account created successfully! ' });
- }
- });
- }
- })
- }
- });
- userRoutes.post('/signin', function(req, res, next) {
- User.findOne({
- email: req.body.email
- }, function(err, user) {
- if (err) throw err;
- if (!user) {
- res.send({ success: false, msg: 'Check your email' });
- } else {
- // check if password matches
- user.comparePassword(req.body.password, function(err, isMatch) {
- if (isMatch && !err) {
- // if user is found and password is right create a token
- var token = jwt.sign(user, config.secret);
- // return the information including token as JSON
- res.json({
- success: true,
- token: token,
- username: user.username
- });
- } else {
- res.send({ success: false, msg: 'Check your password!' });
- }
- });
- }
- });
- });
- userRoutes.get('/logout', middlewares.isAuthenticated,function(req,res,next){
- return res.json({message: 'Success to logout', success: true});
- });
- userRoutes.get('/users',middlewares.isAuthenticated, function(req, res,next) {
- User.find({}, function(err, users) {
- res.json(users);
- });
- });
- module.exports= userRoutes;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement