Guest User

Untitled

a guest
Jul 31st, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. 'use strict'
  2.  
  3. const fs = require('fs'),
  4. jwt = require('jsonwebtoken'),
  5. moment = require('moment');
  6.  
  7.  
  8. exports.createToken = (user) => {
  9.  
  10. let payload = {
  11. sub: user._id,
  12. name: user.name,
  13. email: user.email,
  14. password: user.password,
  15. dateOfReg: user.dateOfReg,
  16. //expiresIn: moment().add(30, 'days').unix
  17. };
  18.  
  19. let signOptions = {
  20. algorithm: 'RS256',
  21. expiresIn: "30d"
  22. };
  23.  
  24. let privateKey = fs.readFileSync('./services/private.key', 'utf8');
  25.  
  26. return jwt.sign(payload, privateKey, signOptions);
  27.  
  28. }
  29.  
  30. 'use strict'
  31.  
  32. const jwt = require('jsonwebtoken'),
  33. fs = require('fs'),
  34. moment = require('moment');
  35.  
  36. exports.isAuth = (req, res, next) => {
  37. if(!req.headers.authorization){
  38. return res.status(200).send({message: 'Falta cabecera de autenticación.'});
  39. }
  40.  
  41. let publicKey = fs.readFileSync('./services/public.pub', 'utf8');
  42. let token = req.headers.authorization.replace(/['"']+/g, '');
  43.  
  44. let verifyOptions = {
  45. algorithms: ['RS256'],
  46. expiresIn: "30d"
  47. };
  48.  
  49. try{
  50. jwt.verify(token, publicKey, verifyOptions, (err, decoded) => {
  51. if(err){ return res.send({message: 'Token no verificado', err: err}); }
  52.  
  53. req.user = decoded;
  54. });
  55. }catch(e){
  56. return res.send({message: 'El token no es valido'});
  57. }
  58.  
  59. next();
  60.  
  61. }
  62.  
  63. openssl genrsa -out private.key 256
  64.  
  65. openssl rsa -in private.key -pubout > public.pub
Add Comment
Please, Sign In to add comment