审查生成的会话存储

来自 类
Node 24 高级 6分钟 找出 4处问题

在认证服务使用这段生成的会话存储代码前,对它进行审查。

实现可扩展的会话存储:create 方法可注册为回调,返回不含令牌的摘要,能处理缺失的查询输入,并支持频繁按名称查询。

JavaScript
class SessionStore {
  static #nextId = 1;
  #sessions = [];
  constructor(audit) { this.audit = audit; }
  create(userName, token) {
    const session = { id: SessionStore.#nextId++, userName, token, roles: [] };
    this.#sessions.push(session);
    this.audit(`created ${session.id}`);
    return session;
  }
  get sessions() {
    return [...this.#sessions];
  }
  findByUser(name) {
    return this.#sessions.find((session) =>
      session.userName.toLowerCase() === name.toLowerCase(),
    );
  }
}
class AdminSessionStore extends SessionStore {}
const store = new AdminSessionStore(console.log);
const create = store.create;
[['Ada', 'secret-a'], ['Lin', 'secret-b']].map(([name, token]) => create(name, token));
console.log(store.sessions);

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误