用途:在 Python Web 框架(Django、FastAPI、Flask)中实现 Scalekit SaaSKit 身份验证,使用 scalekit-sdk-python。
主要能力与约束:凭证须从环境变量 SCALEKIT_ENVIRONMENT_URL、SCALEKIT_CLIENT_ID、SCALEKIT_CLIENT_SECRET 读取,禁止硬编码。回调时须先比对 oauth_state cookie 与回调 state 参数,不一致则拒绝,作为 CSRF 校验;oauth_state cookie 须设置 httponly、secure、samesite="lax"。回调成功不能直接视为已登录,须完成 authenticate_with_code 并把结果存入会话;登出时清理会话与 cookie。
框架检测:先查看 requirements.txt 或 pyproject.toml 判断 django、fastapi 或 flask,无法确定时询问用户。
安装:pip install scalekit-sdk-python python-dotenv
初始化:从环境加载配置后创建 ScalekitClient(env_url、client_id、client_secret)。
框架路由差异:Django 使用自定义中间件类与 Django 会话(DB/缓存),参考随包提供的 django-reference.md;FastAPI 使用依赖注入与服务端或 JWT 会话,资料中给出默认工作流示例;Flask 使用 @login_required 装饰器与 Flask-Session,参考 flask-reference.md。
FastAPI 示例要点:登录路由生成 state 并重定向到授权地址,同时写入 oauth_state cookie;回调路由校验 state 后调用 authenticate_with_code,并保存结果用户与令牌,删除 cookie;登出路由获取登出地址并清理会话。若 authenticate_with_code 抛异常,需确认重定向 URI 与后台配置完全一致。
适用场景:需要为 Python Web 应用快速接入 Scalekit 托管登录与登出流程。
限制:具体会话存储机制、生产部署细节及定价等信息暂未提供;高级会话处理与 RBAC 需切换至其他技能(managing-saaskit-sessions、implementing-access-control)。