https://github.com/risingstack/thorken
Redis based JWT session for Node.js with the power of Thor
https://github.com/risingstack/thorken
Last synced: 4 months ago
JSON representation
Redis based JWT session for Node.js with the power of Thor
- Host: GitHub
- URL: https://github.com/risingstack/thorken
- Owner: RisingStack
- Created: 2015-09-21T13:51:17.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-10-21T14:21:04.000Z (about 10 years ago)
- Last Synced: 2025-08-20T07:09:55.563Z (5 months ago)
- Language: JavaScript
- Homepage:
- Size: 155 KB
- Stars: 11
- Watchers: 14
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# thorken
[ ](https://codeship.com/projects/104466)
`Redis` and `JWT` token based session manager.
## Usage
You need [redis](http://redis.io) to use this package.
`npm install --save thorken`
### Configure
```javascript
var Thorken = require('thorken')
var session = new Thorken({
jwtSecret: 'secret',
[namespace]: 'ts',
[redis]: ioredisInstance,
[cleanupManual]: false
})
```
### Create
```javascript
session.create({
uid: '1',
[ttl]: 7200,
[ip]: '127.0.0.1'
})
.then(function (jwtToken) { ... })
```
### Get
```javascript
session.get('token')
.then(function (session) { ... })
```
### Extend
The second ttl parameter is optional.
```javascript
session.extend('token', 7200)
.then(function (expiresAt) { ... })
```
### Destroy
```javascript
session.destroy('token')
.then(function (isSuccess) { ... })
```
### Cleanup
For manual cleanup.
To clear only expired sessions
```javascript
session.cleanup().then(function () { ... })
```
To clear every session
```javascript
session.cleanup(true).then(function () { ... })
```
### Get user's sessions
```javascript
session.getByUserId('1').then(function (sessions) { ... })
```
### Destroy user's sessions
```javascript
session.destroyUser('1').then(function (isSuccess) { ... })
```
## Server connectors
### Koa middleware
```javascript
var app = require('koa')()
var Thorken = require('thorken')
var protect = require('thorken/src/koa')
var session = new Thorken({ ... })
app.use(protect(session, {
[extend]: true
}))
```