qwebs-auth-jwt
Version:
Authentication service using JSON Web Token for Qwebs server
81 lines (61 loc) • 1.75 kB
Markdown
# 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
```