https://github.com/deepexi/egg-authorization
egg-authorization
https://github.com/deepexi/egg-authorization
Last synced: about 23 hours ago
JSON representation
egg-authorization
- Host: GitHub
- URL: https://github.com/deepexi/egg-authorization
- Owner: deepexi
- License: mit
- Created: 2019-08-29T12:24:23.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-07-13T22:35:38.000Z (almost 6 years ago)
- Last Synced: 2025-12-13T05:08:44.486Z (7 months ago)
- Language: JavaScript
- Size: 24.4 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
# egg-authorization
[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Test coverage][codecov-image]][codecov-url]

[npm-image]: https://img.shields.io/npm/v/egg-authorization.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/egg-authorization
[travis-image]: https://img.shields.io/travis/deepexi/egg-authorization.svg?style=flat-square
[travis-url]: https://travis-ci.org/deepexi/egg-authorization
[codecov-image]: https://img.shields.io/codecov/c/gh/deepexi/egg-authorization.svg?style=flat-square
[codecov-url]: https://codecov.io/gh/deepexi/egg-authorization
[download-image]: https://img.shields.io/npm/dw/egg-authorization
[download-url]: https://www.npmjs.com/package/egg-authorization
Egg's authorization(JSON Web Token Authentication Plug)
## Install
```bash
$ npm i egg-authorization --save
```
## Usage
```js
// {app_root}/config/plugin.js
exports.auth = {
enable: true,
package: "egg-authorization"
};
```
## Configuration
```js
// {app_root}/config/config.default.js
'use strict';
exports.auth = {
enable: true,
// 是使用什么认证
type: 'jwt',
// jwt配置
jwt: {
common: {
// 是否开启解析
enableParse: true,
// 是否开启验签
enableSignature: false,
// 是否开启错误处理
enableOnError: true,
},
generate: {
// 生成秘钥
secret: '123456',
// 有效时间
exp: 3600,
},
parse: {
// 需要解析 token 的位置
tokenPos: 'headers.authorization',
// 解析秘钥
secret: '123456',
},
// 用户自定义错误
onerror: {
// 解析错误的时候策略
// ignore 忽略错误
// exception 抛异常
// returnFormat 返回自定义的格式
strategy: 'returnFormat',
// 返回数据的格式,目前支持json 和 html
returnType: 'json',
json(ctx) {
ctx.body = { msg: 'Unauthorized' };
ctx.status = 401;
},
html(ctx) {
ctx.body = '
Unauthorized
';
ctx.status = 410;
},
},
},
};
```
see [config/config.default.js](config/config.default.js) for more detail.
## Example
```javascript
// app/router.js
"use strict";
module.exports = app => {
app.get('/login',app.controller.login.index);
};
```
```js
'use strict';
module.exports = app => {
class LoginController extends app.Controller {
* index() {
console.log('login userInfo body : ', this.ctx.query.user);
this.ctx.body = this.ctx.query.user;
}
}
return LoginController;
};
```
you can use this way to get the token context
```js
// app/controller/test.js
("use strict");
module.exports = app => {
class SuccessController extends app.Controller {
index() {
// get the token
const authorization = this.ctx.headers.authorization;
const data = this.ctx.auth.decode(authorization);
console.log(data);
this.ctx.body = data;
}
}
return SuccessController;
};
```
## Questions & Suggestions
Please open an issue [here](https://github.com/eggjs/egg/issues).
## License
[MIT](LICENSE)