@pmc12thsuki/session-manager
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

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
    • 必須實現 getItemsetItemremoveItem 接口
  • 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:返回當前的 sessionIdclientId

    • 過午夜、超過 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();

Readme

Keywords

none

Package Sidebar

Install

npm i @pmc12thsuki/session-manager

Weekly Downloads

0

Version

1.0.1

License

ISC

Unpacked Size

10.2 kB

Total Files

8

Last publish

Collaborators

  • pmc12thsuki