Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var router = express.Router();
- var jwt = require('jsonwebtoken');
- var mongoose = require('mongoose');
- var db = require('../mongodb/mongo');
- /* GET users listing. */
- // #routes:10 function untuk mengecek token
- function isAuthenticated(req, res, next){
- var token = req.body.token || req.query.token || req.headers.authorization; // mengambil token di antara request
- if(token){ //jika ada token
- jwt.verify(token, 'jwtsecret', function(err, decoded){ //jwt melakukan verify
- if (err) { // apa bila ada error
- res.json({message: 'Failed to authenticate token'}); // jwt melakukan respon
- }else { // apa bila tidak error
- req.decoded = decoded; // menyimpan decoded ke req.decoded
- next(); //melajutkan proses
- }
- });
- }else { // apa bila tidak ada token
- return res.status(403).send({message: 'No token provided.'}); // melkukan respon kalau token tidak ada
- }
- }
- // #routes:0 membuat router ke url "http://localhost:3000/users/login"
- router.post('/login', function(req, res, next) {
- db.users.findOne({username:req.body.username}, function(err,data){ //mencari data
- if (data) { // apabila menemukan
- if (data.password === req.body.password) { //apabila data password sama dengan user password
- var token = jwt.sign(data, 'jwtsecret', { // melakukan generate token di jwt
- algorithm: 'HS256'
- });
- res.json({message:'succes login', token: token, succes: true});
- }else { //apabila salah password
- res.json({message:'wrong password', succes: false});
- }
- }else { //apabila username tidak di temukan
- res.json({message:'username not found', succes: false});
- }
- });
- });
- // #routes:20 router kusus buat yang sudah login atau sudah punya token
- router.get('/private', isAuthenticated, function(req, res, next){
- res.json({message:'succes access with token'});
- });
- // #routes:30 router yang bersifat public atau bisa di akses semua orang
- router.get('/public', function(req, res, next){
- res.json({message:'succes acces without token'});
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment