npm i jsonwebtoken
const express = require('express')
const jwt = require('jsonwebtoken')
const TOKEN_SECRET = "7bc78545b1a3923cc1e1e19523fd5c3f20b409509";//process.env.ACCESS_TOKEN_SECRET;
const app = express()
const port = 3000
function authenticateToken(req, res, next) {
// Gather the jwt access token from the request header
const authHeader = req.headers['authorization']
const token = authHeader && authHeader.split(' ')[1]
if (token == null) return res.sendStatus(401) // if there isn't any token
jwt.verify(token, TOKEN_SECRET, (err, user) => {
console.log(err)
if (err) return res.sendStatus(403)
req.user = user
next() // pass the execution off to whatever request the client intended
})
}
function generateAccessToken(username) {
// expires after 60 mins (3600 seconds = 60 minutes)
return jwt.sign({data:username}, TOKEN_SECRET, { expiresIn: 60*60 });
}
// login?username=naresh@gmail.com
app.get('/login', (req, res) => {
let username = req.query.username;
console.log(username);
let token = generateAccessToken(username)
console.log(token);
res.json({token:token})
});
// Pass Bearer Token
app.post('/updateuser',authenticateToken, (req, res) => res.send('Success!'))
app.listen(port, () => console.log(`Example app listening on port port!`))
It will return token string
http://localhost:3000/updateuser ( POST )
Pass Bearer Token : token in Postman tool