https://github.com/hstarorg/express-token
Token authentication for express.
https://github.com/hstarorg/express-token
authentication express token
Last synced: 6 months ago
JSON representation
Token authentication for express.
- Host: GitHub
- URL: https://github.com/hstarorg/express-token
- Owner: hstarorg
- License: mit
- Created: 2017-03-25T01:19:42.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-03T06:45:41.000Z (over 8 years ago)
- Last Synced: 2025-07-09T05:33:57.944Z (7 months ago)
- Topics: authentication, express, token
- Language: JavaScript
- Size: 39.1 KB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# express-token
Token authentication for express.
前后端分离之后,一般会采用 `rest api` 类似方式来进行数据交互,此时如果用Session认证可能就不是那么合适(当然,也是可以的)。
由于我自己的多个项目都采用了token认证,每次都去实现一套token认证,也是蛮不爽的。so,搞个中间件玩起来。
# How to use
```bash
# Install
npm i --save express-token
# Use
const expressToken = require('express-token');
app.use(expressToken(options)); // optional options
# When login
expressToken.login(userInfo)
.then(token => {
// There can get token, you can use it do anything.
console.log(token);
});
# When logout
expressToken.logout(token)
.then(() => {
// Logout succeed,do something...
});
# Get token or user info
router.user('/', (req, res, next) => {
let token = req.token; // Get token
let user = req.user; // Get user info
if(!req.user){
// Not login
}
});
```
**Options(均为可选参数,默认无需设置)**
* ttl {Number} 单位毫秒,token滑动过期时间,默认30分钟
* tokenHeader {String} 自定义的token header,默认 'x-token'(决定我们从哪个header获取token)
* generateToken {(req: Request) => {}} 生成token的函数,允许返回Promise
* getToken {(req: Request, tokenHeader: string) => {}} 获取token的函数,如果配置了该函数,将不会通过tokenHeader获取token。
示例:
```js
let options = {
ttl: 1000 * 60 * 60, // 1个小时
tokenHeader: 'x-test-token', // 默认通过 req.headers['x-test-token'] 获取token
generateToken(req){ // 自定义token生成函数
return Math.random().toString(16);
},
getToken(req, tokenHeader){ // 自定义获取token
return req.headers['xxx'];
}
};
```
# How to develop?
```bash
git clone
# Run dev
npm run dev
```
# How to feedback?
If you find some bug or have some feedback, please [create an issue](https://github.com/hstarorg/express-token/issues/new).
# ChANGELOG
[Click here](CHANGELOG.md) to show more change log.