2026/10/14 15:12:37

如何10分钟接入Keslr登录:keslr_connect快速入门(零基础到isVerified=true)

如何10分钟接入Keslr登录:keslr_connect快速入门(零基础到isVerified=true) 【免费下载链接】keslr_connectConnect your service to Keslr: sign in with Keslr and read the verification claim that proves a user is a real, vouched-for human — plus run services reachable only by Keslr members.项目地址https://gitcode.com/gh_mirrors/ke/keslr_connect点击查看免费下载keslr_connect 是接入Keslr 登录Sign in with Keslr的官方 TypeScript 工具包三个 npm 包加一个完整示例让你的 Express 应用在 10 分钟内拥有一键登录 真人验证能力并直接读取isVerified这个关键的验证声明。本文是一份面向零基础的快速入门指南。 先理解 Keslr 是什么它是一个仅限邀请的网络每一位成员都是经真人背书的已验证用户——没有注册表单、没有邮箱验证、没有验证码。你的应用从中获得两样别处得不到的东西一个确定是真人的用户以及一个只有成员能访问的私有网络。 keslr_connect 包含什么整个仓库由三个功能互补的包和一个可运行示例组成组件作用keslr/authOIDC 登录核心完成 Sign in with Keslr 流程并读取是否已验证的声明keslr/expressExpress 中间件三行代码挂载登录路由和守卫keslr/network把请求来源的 Keslr 网络地址解析为拥有该设备的成员examples/guestbook完整示例应用一本每个签名都是真人的留言本本教程走最常用的路线用keslr/express接入登录读到isVerified: true。 第一步申请开发者权限约 2 分钟所有配置都从 Keslr 开发者平台开始用你的 Keslr 账号登录developers.keslr.com申请开发者访问权限——申请会经过人工审核需要等待获批后创建一个应用Keslr 会为它分配网络地址和your-app.app.keslr.com形式的主机名为该应用注册一个OIDC 客户端填好回调地址Redirect URI得到client ID服务端应用还会拿到client secret。⚠️ 新手第一大坑Redirect URI 必须逐字节匹配。http://localhost:3000/auth/keslr/callback和http://localhost:3000/auth/keslr/callback/是两个不同的 URI多一个斜杠都不行localhost和127.0.0.1也算不同。请连同开发环境的本地地址一起注册。 第二步克隆仓库并安装包暂未发布到 npm目前从源码安装这也是仓库 README 官方推荐的方式git clone https://gitcode.com/gh_mirrors/ke/keslr_connect cd keslr_connect npm install npm run build然后在你的项目里通过npm link、workspace 或file:依赖引用这些包。发布到 npm 之后这里会变成常规的npm install keslr/auth keslr/express。⚙️ 第三步配置 4 个环境变量在项目里放一个.envsession 密钥可用openssl rand -base64 48生成切勿提交到代码库KESLR_ISSUERhttps://api.keslr.com KESLR_CLIENT_ID你的-client-id KESLR_CLIENT_SECRET你的-client-secret SESSION_SECRET一段足够长的随机字符串 PUBLIC_URLhttp://localhost:3000 第四步几行代码接入 Keslr 登录以 Express 为例核心就是session keslrAuth 守卫import express from express; import session from express-session; import { keslrAuth, requireAuth, requireVerified } from keslr/express; const app express(); app.use( session({ secret: process.env.SESSION_SECRET!, resave: false, saveUninitialized: false, cookie: { httpOnly: true, sameSite: lax, // 关键不能用 strict secure: process.env.NODE_ENV production, }, }), ); app.use( keslrAuth({ issuer: process.env.KESLR_ISSUER!, clientId: process.env.KESLR_CLIENT_ID!, clientSecret: process.env.KESLR_CLIENT_SECRET, redirectUri: ${process.env.PUBLIC_URL}/auth/keslr/callback, }), ); app.get(/, (req, res) { if (!req.keslr) return res.send(a href/auth/keslr/loginSign in with Keslr/a); const { user } req.keslr; res.send(Hello ${user.username}. Verified: ${user.isVerified}); }); app.get(/members-only, requireVerified(), (req, res) { res.send(只有已验证的真人类才能看到这句话。); }); app.listen(3000);就这样keslrAuth()自动挂载了GET /auth/keslr/login、GET /auth/keslr/callback、POST /auth/keslr/logout三条路由并把登录成员放到req.keslr上。requireAuth()要求已登录requireVerified()进一步要求已验证。✅ 第五步看到 isVerified true运行后打开http://localhost:3000点击 Sign in with Keslr 登录你会被重定向回首页并看到你的用户名和Verified: true。此时req.keslr.user长这样isVerified就是目标声明{ id: 019f..., // UUID用作数据库外键 keslrId: KID-A1B2C3D4E5F6, // 公开的成员标识 username: yourname, verificationStatus: verified, verificationMethod: referral_approved, isVerified: true // ← 就是它 }verificationStatus有四种取值建议始终读isVerified布尔值而不是手写字符串比较——任何拼写错误都会失败放行把不该放行的放进门而isVerified只在库内一处计算并经过测试遇到未知状态还会安全地按未验证处理fail closed。四种状态的含义详见 docs/verification-claims.md。⚠️ 两个最耗时的坑提前避掉sameSite用lax不要用strict。strict 会在从 Keslr 重定向回来的那一刻扣住 session cookie回调到达时没有 session所有登录都报login_expired——症状和原因看起来八竿子打不着。Redirect URI 逐字节匹配。多一个尾斜杠、http写成https、localhost换成127.0.0.1都会以redirect_uri_mismatch告终。更多症状对照表见 docs/troubleshooting.md完整流程每一步在防什么攻击见 docs/authentication.md。 进阶方向免登录识别访问者如果你的服务部署在 Keslr 私有网络上地址段100.64.0.0/10可用keslr/network把谁的设备连了进来直接解析为成员身份——没有注册表单、没有密码一次 lookup 调用搞定。注意务必绑定 Keslr 地址而不是0.0.0.0细节见 docs/hosting-on-keslr.md。照抄完整示例examples/guestbook是一个留言本应用同时演示了登录、仅验证成员可写、网络身份归属和地址绑定检查运行方式见 examples/guestbook/README.md。完整快速入门官方 docs/quickstart.md 与本文步骤一一对应可对照精读。十分钟后你的应用就已经站在了每个用户都是被背书的真人这一前提之上——这正是 Keslr 生态里最值钱的一块地基。赞分享【免费下载链接】keslr_connectConnect your service to Keslr: sign in with Keslr and read the verification claim that proves a user is a real, vouched-for human — plus run services reachable only by Keslr members.项目地址https://gitcode.com/gh_mirrors/ke/keslr_connect点击查看免费下载相关推荐推荐系统新星Universal Recommender推荐系统新星Universal Recommender 是一个由ActionML开发的开源推荐引擎它结合了协同过滤、基于内容的推荐以及深度学习等多种现代推荐嵌入式网络安全mysqlclient与DB-API 2.0规范完全兼容性分析与实战案例mysqlclient与DB API 2.0规范完全兼容性分析与实战案例 mysqlclient作为Python连接MySQL/MariaDB的核心驱动全面数据库后端gh_mirrors/wa/waf日志分析教程使用ELK收集与可视化Web攻击数据gh_mirrors/wa/waf日志分析教程使用ELK收集与可视化Web攻击数据 gh_mirrors/wa/waf是基于NginxLua实现的Web应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考