Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var User = require('../models/user');
- var jwt = require('jsonwebtoken');
- var jwtSecret = 'jwtSecret';
- module.exports = function(router){
- // user registration
- // =================
- router.post('/users', function(req,res){
- var user = new User();
- user.username = req.body.username;
- user.password = req.body.password;
- user.email = req.body.email;
- if(req.body.username == null || req.body.username == '' || req.body.password == null || req.body.password == '' || req.body.email == null || req.body.email == ''){
- res.json({
- success: false,
- message: 'Ensure filling user information correctly!'
- })
- }
- else{
- user.save(function(err){
- if(err){
- res.json({
- success: false,
- message: 'Username or Email already exists!'
- })
- } else {
- res.json({
- success: true,
- message: 'User created!'
- });
- }
- });
- }
- });
- // user login
- // ==========
- router.post('/authenticate', function(req,res){
- User.findOne({
- username: req.body.username
- }).select('email username password')
- .exec(function(err,user){
- if(err) throw err;
- if(!user){
- res.json({ success: false, message: 'Could not authenticate'});
- }
- else if (user){
- if(req.body.password){
- var validPassword = user.comparePassword(req.body.password);
- }
- else {
- res.json({
- success: false,
- message: 'No password provided'
- })
- }
- if(!validPassword){
- res.json({
- success: false,
- message: 'Could not authenticate password'
- });
- }
- else{
- var token = jwt.sign({
- username: user.username,
- email: user.email,
- }, jwtSecret, {expiresIn: '3h'});
- res.json({
- success: true,
- message: 'User successfully authenticated',
- token: token
- });
- }
- }
- });
- });
- // grabbing our JWT, 3 possible ways
- // =================================
- router.use(function(req,res,next){
- var token = req.body.token || req.body.query || req.headers['x-access-token'];
- if(token){
- jwt.verify(token, jwtSecret, function(err, decoded){
- if(err){
- res.json({
- success: false,
- message: 'Invalid token'
- });
- } else{
- req.decoded = decoded;
- next();
- }
- });
- }
- else{
- res.json({
- success: false,
- message: 'no token detected'
- });
- }
- });
- // get
- router.post('/me', function(req,res){
- res.send(req.decoded);
- });
- return router;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement