26 lines
		
	
	
		
			570 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			570 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var jwt = require('jsonwebtoken');
 | 
						|
 | 
						|
let Auth = {}
 | 
						|
 | 
						|
const secretKey = '@TODO define secret constant its important!!!'
 | 
						|
 | 
						|
Auth.createToken = (userId) => {
 | 
						|
	const signedData = {'id': userId, 'date':Date.now()}
 | 
						|
	const token = jwt.sign(signedData, secretKey)
 | 
						|
	return token
 | 
						|
}
 | 
						|
Auth.decodeToken = (token) => {
 | 
						|
	return new Promise((resolve, reject) => {
 | 
						|
		jwt.verify(token, secretKey, function(err, decoded){
 | 
						|
			if(err || decoded.id == undefined){
 | 
						|
				reject('Bad Token')
 | 
						|
				return
 | 
						|
			}
 | 
						|
			//Pass back decoded token
 | 
						|
			resolve(decoded)
 | 
						|
			return
 | 
						|
		});
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
module.exports = Auth |