OAUTH2 · OIDC · PASSKEY
一个连接器,点亮所有登录
CZL Connect 把 GitHub、Google、QQ、微信、Discourse、通行密钥折叠成一套标准 OIDC 登录;登录之后的账号安全、用户分组、群发通知、安装包分发与在线客服,也在同一个后台里完成。
5 分钟即可启动,无需信用卡
PLATFORM
登录之外, 还有一整套应用后台
接入一次 OIDC, 下面这些能力都跟着用户账号一起可用
SIGN-IN
一次接入, 接住所有登录方式
同一个人从 GitHub、Google、QQ、微信、Discourse 或通行密钥进来, 都是同一个账号。对外只有一套标准 OAuth2 / OIDC, 现成的客户端库直接可用。
- Authorization Code + PKCE, 纯前端等公开客户端免 secret、强制 S256
- OIDC Discovery 与 JWKS, ID Token 用 RS256 签名
- prompt=none 静默认证, 已登录用户回到应用无感恢复会话
- upstream_providers 限定本次只显示指定的登录方式
- refresh_token 滑动续期, 活跃用户不会隔天掉登录
GET /oauth2/authorize
GET /oauth2/authorize?
client_id=client_xxxxxxxxxxxx
&response_type=code
&scope=openid profile email
&code_challenge_method=S256
&upstream_providers=github,wechat
&prompt=none
# 已登录且已授权 → 直接带 code 回跳
302 https://your-app.com/callback?code=…&state=…
# 无法静默完成 → 带错误回跳, 不弹登录页
302 https://your-app.com/callback?error=login_requiredSECURITY
登录之后, 账号也替你守着
用户在账户设置里自助管理登录方式与安全信息, 敏感操作有通行密钥兜底, 异常登录一眼能看出来。
- 通行密钥 (WebAuthn) 快捷登录, 敏感操作要求再次验证
- 登录历史按 IP 记录地理位置与风险: Tor、代理 / VPN、托管机房
- QQ / 微信登录先补真实邮箱并验证, 不留虚拟邮箱账号
- 已验证用户可自助换绑邮箱, 新旧邮箱各验证一次
- 管理员可按单 IP 或网段封禁, 支持到期自动解除
账户设置 / 安全
通行密钥 · MacBook Touch ID
验证后 10 分钟内敏感操作免重复确认
登录历史
- 安全203.0.113.24上海 · 电信 · 微信
- 可疑198.51.100.7新加坡 · 托管机房 · GitHub
- 高风险192.0.2.180德国 · Tor 出口 · 通行密钥
APPS & API
用户、分组、数据, 后台和接口都能管
每个应用独立管理自己的用户与分组。控制台能做的, 大部分也能让你的后端用应用级 API 程序化完成。
- 应用内分组 t0–t5 / viewer / admin, groups 以 JSON 数组随 ID Token 与 userinfo 下发
- 应用统计: 授权次数、活跃用户、MAU 趋势
- 应用级 API: 查用户、改分组、禁用并踢下线、拉取授权事件
- 凭证按 scope 授权、哈希存储, 轮换时旧凭证保留 24 小时宽限
- 授权日志与操作审计分两条线记录, 保留时长随套餐提升
应用级 API · /api/v1/app
# 调整用户分组 (scope: group:write)
curl -X PATCH \
-H "Authorization: Bearer czlc_live_xxx" \
-d '{"group":"t3"}' \
https://connect.czl.net/api/v1/app/users/1001
# 用户下次登录, ID Token / userinfo 里:
{
"sub": "1001",
"email_verified": true,
"groups": ["t0", "t1", "t2", "t3"]
}OPERATIONSPlus 及以上套餐
通知用户、分发安装包, 不用另起服务
两件接入方常常要自己搭的运营活儿, 直接用应用里的数据完成。
- 群发通知: Markdown 正文, 按应用内分组筛选收件人, 也可追加外部邮箱
- 一键退订 (RFC 8058), 自动跳过已退订、未验证邮箱与封禁用户
- 发布下载: GitHub Release (含私有仓库) 经 /dl/ 固定地址对外分发
- latest.json 自动更新清单, 附件地址指向固定版本并带 sha256
- 公开下载页按访客系统推荐安装包, 按别名统计下载次数
GET /dl/myapp/latest.json
{
"tag": "v1.2.3",
"aliases": {
"windows-x64": {
"sha256": "9f2c1a…",
"url": ".../dl/myapp/v1.2.3/windows-x64"
}
}
}群发通知 · 版本更新
v1.2.3 已发布
已发送 4,812跳过 37失败 2
LIVE SUPPORTPlus 及以上套餐
网站客服, 一行脚本上线
在你的网站嵌入客服浮窗, 访客消息实时进入收件箱。绑定企业微信智能机器人后, 坐席在企业微信里引用消息就能回复。
- 右下角浮窗, 或用 data-czl-support 绑到页面上任意按钮
- 会话前表单: 名称、邮箱、手机号、留言, 每项可选填或必填
- 已校验访客: 你的后端签发身份令牌, 资料锁定、跨设备共享记录
- 对话中收发图片与文件; 访客离线时回复改走邮件送达
- 企业微信智能机器人双向转发, 所有应用的会话汇总到一个收件箱
your-site.com · 在线客服
张三已校验来自 /pricing
企业版可以私有部署吗?
需求说明.pdf
可以, 我把部署说明发到你邮箱
坐席在企业微信引用回复 · 访客离线时改发邮件
3 STEPS
三个请求, 你的应用就有了身份系统
标准 Authorization Code + PKCE, 一份 client_id 通吃所有登录方式
STEP / 01
创建应用
在控制台创建应用,填好回调地址和需要的 scope,当场拿到一组凭据
client_id = client_xxxxxxxxxxxx
client_secret = **** # 纯前端应用可不用
redirect_uri = https://your-app.com/callbackSTEP / 02
前端跳授权
把用户引导到授权端点,走标准 Authorization Code + PKCE;想限定登录方式就带上 upstream_providers
GET /oauth2/authorize?
client_id=client_xxxxxxxxxxxx
&redirect_uri=https://your-app.com/callback
&response_type=code
&code_challenge_method=S256
&code_challenge=...STEP / 03
换 token 取用户
拿 code 换 access_token / id_token,再调 userinfo 拿到用户身份;需要分级时再取可选的 groups
POST /api/oauth2/token
→ { access_token, id_token, refresh_token }
GET /api/oidc/userinfo
→ { sub, email, email_verified,
groups: ["t3"] } # 可选, 用不上可忽略IDENTITY PROVIDERS
当前可用的登录方式
用户用熟悉的账号登录; 新增登录方式时, 已接入的应用无需改动