npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cas-client-mw

v0.0.4

Published

配套的CAS client中间件

Downloads

5

Readme

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');