@bonio-tw/session-manager
v1.0.0
Published
## Setup `yarn add @bonio-tw/session-manager`
Downloads
32
Keywords
Readme
session-manager
Setup
yarn add @bonio-tw/session-manager
How To Use
import { initSessionManager } from '@bonio-tw/session-manager';
// app or web storage
// https://developer.mozilla.org/zh-TW/docs/Web/API/Storage
const customStorage = {};
const sessionManager = initSessionManager({
storage: customStorage,
});
initSessionManager 參數
- storage:
required
- 可帶 app 或 web 的 storage
- 必須實現
getItem
、setItem
、removeItem
接口
- sessionIdTTL:
optional
- sessionId 過期的時間。
- 以秒為單位,default 值為 1800 秒(30分鐘)
- 使用 0 代表 sessionId 不會因為閒置而過期
- generateSessionId:
optional
- 產生 sessionId 的方法
- default 使用
uuidv4
- generateClientId:
optional
- 產生 clientId 的方法
- default 使用
uuidv4
const sessionManager = initSessionManager({
storage: customStorage,
sessionIdTTL: 30 // 30s
generateSessionId: () => `mySessionId`,
generateClientId: () => `myClientId`
});
SessionManager API
getSession:返回當前的
sessionId
及clientId
- 過午夜、超過 sessionIdTTL 時,會 renew sessionId
- 可帶參數
sessionIdTTL
,複寫當次 getSession 時要使用的 ttl 時間。使用 0 代表 sessionId 不會因為閒置而過期。
clearSession:清空當前 storage 中紀錄的 session 資訊
const session = await sessionManager.getSession({sessionIdTTL: 0});
// 不檢查是否已經超過 sessionId 的閒置時間
console.log(session)
// { sessionId: 'mySessionId', clientId: 'myClientId' }
await sessionManager.clearSession();