cas-client-mw
v0.0.4
Published
配套的CAS client中间件
Downloads
5
Readme
CAS 服务对接中间件
提供的功能
当子系统对接 CAS 服务时,CAS 通常需要提供以下功能来实现单点登录(SSO)和统一用户管理:
认证服务: CAS 主要提供认证服务,允许用户在 CAS 登录一次后,即可访问连接的各个子系统,无需再次输入凭据。CAS 会验证用户的身份,并为用户生成安全凭据(如票据)以表示其已成功认证。
单点登录(SSO): 一旦用户在 CAS 中成功登录,他们可以无缝地访问连接的各个子系统,而无需在每个子系统中单独登录。子系统需要能够识别和验证 CAS 提供的凭据。
用户信息提供: CAS 需要能够将经过认证的用户信息传递给子系统。这可以包括用户的标识信息(如用户名、唯一 ID)、角色、权限等。
用户会话管理: CAS 通常会维护用户会话,以便在用户在不同子系统之间切换时保持登录状态。这可以确保用户在同一 CAS 会话期间无需重复登录。
凭据管理: CAS 需要生成和管理用户凭据,例如票据。这些凭据用于向子系统证明用户已通过认证。
安全性: CAS 需要提供安全的认证和通信机制,以保护用户凭据和敏感信息的传输。通常会使用加密和安全协议来确保数据安全性。
身份管理: CAS 可能提供用户管理界面,供管理员管理用户账户、角色、权限等信息。这可以让管理员更方便地管理整个系统中的用户。
集成和扩展性: CAS 应该提供易于集成的 API 和插件机制,以便子系统能够灵活地扩展和定制集成。这可以让每个子系统根据自身需求进行适当的调整。
错误处理和日志: CAS 应该提供详细的错误处理机制,以便在出现问题时提供有用的错误信息。同时,应该记录关键操作和事件的日志,以便进行故障排除和安全审计。
单点登出(SLO): CAS 可能还提供单点登出功能,允许用户在一个子系统中注销后,自动从其他已登录的子系统中注销。
综上所述,CAS 需要提供认证、用户信息传递、会话管理、安全性和扩展性等关键功能,以实现子系统的单点登录和统一用户管理。具体的功能和配置可能会因 CAS 的实际实现和子系统的需求而有所不同。
使用方式
- installation
npm i cas-client-mw
- 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');