用途:在 FastAPI 项目中接入 SaaSKit 登录,覆盖登录、回调、会话 Cookie、登出与令牌刷新;不适用于 Django、Flask、Node/Express 或 Next.js App Router(应改用对应技能或参考文档)。
主要能力:适配器默认注册 GET /login、/callback、/logout;/login 设置 sk_oauth_state 并跳转 Scalekit;/callback 校验 state,成功写入加密的 sk_session(HttpOnly、SameSite=lax);/logout 默认 full_logout=True。requires_auth 依赖负责会话校验与刷新,会话缺失时 302 到 /login?returnTo=…。
必要用法:安装 scalekit-sdk-python[fastapi];在 app.py 中用 ScalekitAuth 读取 SCALEKIT_ENVIRONMENT_URL、SCALEKIT_CLIENT_ID、SCALEKIT_CLIENT_SECRET、SCALEKIT_REDIRECT_URI 与 COOKIE_ENCRYPTION_SECRET,并调用 auth.install(app);不得读取 SCALEKIT_ENV_URL,也不自行拼接 https://。本地 HTTP 需 cookie_secure=False,生产设为 True(SDK 默认 True)。SCALEKIT_REDIRECT_URI、控制台 Redirect URI 与进程主机端口须为同一字符串;如 URI 以 /auth/callback 结尾,需传 callback_path="/auth/callback" 或两边改为 /callback。生成密钥可用 openssl rand -base64 32,并保证各服务器一致。
限制:不要手写路由或复制 Express Cookie;受保护端点应返回普通值而非 Response,否则会丢失刷新后的 Cookie;不要新增 /auth/refresh。returnTo 仅允许相对路径。注册 Initiate Login URL 与 Post Logout Redirect URI。文档:https://docs.scalekit.com/saaskit/sdks/fastapi/ 。