UNPKG

jwt-node-auth

Version:

This is a NodeJS authentication package using JWT in the background. This package let you generate a JWT Token and Verify the token on a fly.

89 lines (59 loc) 2.37 kB
# JWT-Node-Auth **JWT-Node-Auth** is a NodeJS authentication package using JWT in the background. This package let you generate a JWT Token and Verify the token on a fly. ## Installation ```bash npm install jwt-node-auth ``` ## Usage To use jwt-node-auth in your NodeJS application, you'll need to create a new instance of the NodeAuth class: ```js const { NodeAuth } = require("jwt-node-auth"); const auth = new NodeAuth(process.env.jwt__secret, process.env.jwt_expiry); ``` ### Generate Token To generate a JWT token, call the getSignedJwtToken method on the auth object: ### async way ``` async function getToken(){ const token = await auth.getSignedJwtToken({ userId: '12345' }); return token } //userId is token payload to be signed with token in generation.It can be any key value pair's like auth.getSignedJwtToken({ user: '12345', role: Admin, ... }). ``` ### then way ``` function getToken() { auth.getSignedJwtToken({ userId: '12345' }).then((token) => { console.log(token); //return token }).catch((error) => { console.log(error); }); } //userId is token payload to be signed with token in generation.It can be any key value pair's like auth.getSignedJwtToken({ user: '12345', role: Admin, ... }). ``` ### Verify Token And Protect Routes To verify a JWT token, you can use the requireAuth middleware provided by the package. This middleware can be used in the following ways. ``` app.use(auth.requireAuth); // OR with Router router.get("/all", auth.requireAuth, testController.getAll); ``` This will automatically verify the JWT token in the Authorization header of incoming requests. //headers must have ``` `Authorization: Bearer ${token}` Example // "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjgzMDIxMjU4LCJleHAiOjE2ODMwMjE3NTh9.jDVTDEoZsEG2m70qrxKzRcv1qo8er02PzFv3V-05ou0" ``` If the token is valid, the middleware will set the req.user property to the decoded token payload. ``` In protected a route console.log(req.user); //{ userId: '12345' } ``` ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate. ## License [MIT](https://choosealicense.com/licenses/mit/)