UNPKG

qwebs-auth-jwt

Version:

Authentication service using JSON Web Token for Qwebs server

81 lines (61 loc) 1.75 kB
# qwebs-auth-jwt Authentication service using [JSON Web Token](https://www.npmjs.com/package/jwt-simple) for [Qwebs server](https://www.npmjs.com/package/qwebs). ## Features * [Qwebs](https://www.npmjs.com/package/qwebs) * [Authentication](https://www.npmjs.com/package/jwt-simple) * [Promise](https://www.npmjs.com/package/q) ### Add the jwt secret key in config.json ```json { "jwt": { "secret": "secretCode" }, } ``` ### Declare and inject $auth ```js const Qwebs = require("qwebs"); const qwebs = new Qwebs(); qwebs.inject("$auth", "qwebs-auth-jwt"); ``` ### Use $auth to connect user ```js class MyService { constructor($auth) { this.$auth = $auth; }; connect(request, response) { let payload = { login: request.body.login }; return this.$auth.encode(payload).then(token => { return response.send({ request: request, content: { token: token } }); }); }; }; exports = module.exports = MyService; //Return a class. Qwebs will create it; ``` ### Use $auth to authenticate user ```js class MyService { constructor($auth) { this.$auth = $auth; }; isConnected(request, response) { return self.$auth.identify(request, response).then(() => { let login = request.payload.login; if (login != "myLogin") throw new DataError({ statusCode: 401 }); return response.send({ request: request, content: { status: "connected" } }); }); }; }; exports = module.exports = MyService; //Return a class. Qwebs will vreate it; ``` ## API * encode(payload) * identify(request, response) * decode(token) ## Installation ```bash $ npm install qwebs-auth-jwt ```