You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
# Nano Session
|
|
|
|
Functions and Classes for handle session with [@nano/sqlite](https://git.node001.net/nano/sqlite) in [Bun](https://bun.sh/).
|
|
|
|
## API
|
|
|
|
### Session
|
|
|
|
Session Object has all Function to create, valid and remove Session. Sqlite can
|
|
be the same or a seperated database.
|
|
|
|
```
|
|
import { getOrCreateSqlite } from '@nano/sqlite'
|
|
import { getOrCreateSqlite } from '@nano/session'
|
|
|
|
const db = getOrCreateSqlite({ uri: ':memory:', create: true, readwrite: true })
|
|
const session = new Session(db)
|
|
```
|
|
|
|
#### create(userId: number, agent: string, language: string, ip = '')
|
|
|
|
Create a new Session for User. Agent and Language from User will be used to create a Hmac value in the DB. The IP is optional. If
|
|
one of these values are changed, the session is invalid. After Creating the session you get a Random Token, and the userId as
|
|
hash.
|
|
|
|
### get(userHash: string, token: string, agent: string, language: string, ip = '')
|
|
|
|
Get Session for User. If session has expired, the entry will be removed from Database.
|
|
|
|
### destroy(sessionId: number)
|
|
|
|
Remove single Session for User with id of Session.
|
|
|
|
### destroyAll(userId: number)
|
|
|
|
Remove all session for a User with UserId.
|