0.0.4 • Published 9 months ago

cas-client-mw v0.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

CAS 服务对接中间件

提供的功能

当子系统对接 CAS 服务时,CAS 通常需要提供以下功能来实现单点登录(SSO)和统一用户管理:

  1. 认证服务: CAS 主要提供认证服务,允许用户在 CAS 登录一次后,即可访问连接的各个子系统,无需再次输入凭据。CAS 会验证用户的身份,并为用户生成安全凭据(如票据)以表示其已成功认证。

  2. 单点登录(SSO): 一旦用户在 CAS 中成功登录,他们可以无缝地访问连接的各个子系统,而无需在每个子系统中单独登录。子系统需要能够识别和验证 CAS 提供的凭据。

  3. 用户信息提供: CAS 需要能够将经过认证的用户信息传递给子系统。这可以包括用户的标识信息(如用户名、唯一 ID)、角色、权限等。

  4. 用户会话管理: CAS 通常会维护用户会话,以便在用户在不同子系统之间切换时保持登录状态。这可以确保用户在同一 CAS 会话期间无需重复登录。

  5. 凭据管理: CAS 需要生成和管理用户凭据,例如票据。这些凭据用于向子系统证明用户已通过认证。

  6. 安全性: CAS 需要提供安全的认证和通信机制,以保护用户凭据和敏感信息的传输。通常会使用加密和安全协议来确保数据安全性。

  7. 身份管理: CAS 可能提供用户管理界面,供管理员管理用户账户、角色、权限等信息。这可以让管理员更方便地管理整个系统中的用户。

  8. 集成和扩展性: CAS 应该提供易于集成的 API 和插件机制,以便子系统能够灵活地扩展和定制集成。这可以让每个子系统根据自身需求进行适当的调整。

  9. 错误处理和日志: CAS 应该提供详细的错误处理机制,以便在出现问题时提供有用的错误信息。同时,应该记录关键操作和事件的日志,以便进行故障排除和安全审计。

  10. 单点登出(SLO): CAS 可能还提供单点登出功能,允许用户在一个子系统中注销后,自动从其他已登录的子系统中注销。

综上所述,CAS 需要提供认证、用户信息传递、会话管理、安全性和扩展性等关键功能,以实现子系统的单点登录和统一用户管理。具体的功能和配置可能会因 CAS 的实际实现和子系统的需求而有所不同。

使用方式

  1. installation
npm i cas-client-mw
  1. usage
import express from 'express';
import cookieParser from 'cookie-parser';
import casClient from 'cas-client-mw/dist/index.esm.js';

const app = express();

app.use(express.json());
app.use(cookieParser());

const cas = new casClient({
  token: 'gkPHX7d9KADL',
  domain: 'http://yinpo.space',
  ignore: [],
  apiMap: {},
});

app.use(cas.core());

app.listen(3000, () => {
  console.log(`Example app listening on port 3000`);
});

export default app;

现在应用中会自动载入:/login, /profile, /logout 三个路由

如果项目使用的是commonjs模块化规范,则使用一下方式导入

const casClient = require('cas-client-mw');