ardyhim

auth

Apr 8th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var router = express.Router();
  3. var jwt = require('jsonwebtoken');
  4. var mongoose = require('mongoose');
  5. var db = require('../mongodb/mongo');
  6.  
  7. function isAuthenticated(req, res, next){
  8.   var token = req.body.token || req.query.token || req.headers.token;
  9.   if (token) {
  10.     jwt.verify(token, 'jwtsecret', function(err, decoded){
  11.       if(err){
  12.         res.json({message: 'Gagal auth token'});
  13.       }else {
  14.         req.decoded = decoded;
  15.         next();
  16.       }
  17.     });
  18.   }else {
  19.     return res.status(430).send({message: 'Tidak ada token'});
  20.   }
  21. }
  22.  
  23. /* GET users listing. */
  24. router.get('/', function(req, res, next) {
  25.   res.send('respond with a resource');
  26. });
  27.  
  28. router.post('/login', function(req, res, next){
  29.   db.users.findOne({username: req.body.username}, function(err,data){
  30.     if (data) {
  31.       if (data.password === req.body.password) {
  32.         var token = jwt.sign(data, 'jwtsecret',{
  33.           algorithm: 'HS256',
  34.         });
  35.         res.json({message:'Berhasil login', token: token});
  36.       }else {
  37.         res.json({message:'Password tidak cocok'});
  38.       }
  39.     }else {
  40.       res.json({message: 'Username tidak di temukan'});
  41.     }
  42.   });
  43. });
  44.  
  45. router.get('/private', isAuthenticated, function(req, res, next){
  46.   res.json({message: 'Hanya bisa di akses dengan token'});
  47. });
  48.  
  49. router.get('/public', function(req, res, nest){
  50.   res.json({message: 'Semua bisa akses'});
  51. });
  52.  
  53. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment