## Setup `yarn add @bonio-tw/session-manager`
npm install @pmc12thsuki/session-manageryarn add @bonio-tw/session-managerjs
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`js
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 資訊
`js
const session = await sessionManager.getSession({sessionIdTTL: 0});
// 不檢查是否已經超過 sessionId 的閒置時間
console.log(session)
// { sessionId: 'mySessionId', clientId: 'myClientId' }
await sessionManager.clearSession();
``