SubLaneSubLane

登入與初始化

首次建立管理員、瀏覽器會話與反向代理配置。

首次初始化

啟動執行個體後開啟頁面,未初始化的資料庫進入 /setup 歡迎頁。點擊開始後,先填寫管理員登入訊息,再進入第二步為第一個工作空間命名。提交第二步時才會一併建立管理員和空間並自動登入;無需額外初始化金鑰。

先在本地完成初始化,再向團隊開放服務;未完成時,能存取頁面的人都可以建立第一個管理員。預設監聽與 Compose 主機連接埠綁定 loopback。管理員、首個工作空間、所有者成員資格和會話在同一事務提交,初始化完成後重啟不會重新開放。

使用者名為 3–32 個 ASCII 字母、數字、底線或連字符,以字母或數字開頭,大小寫不敏感並存為小寫。新密碼為 8–20 個 Unicode 字符,不會自動移除空白。已有舊密碼登入保留最長 128 字元相容。

瀏覽器會話

會話透過 HttpOnly、SameSite=Lax Cookie 傳輸,SQLite 只保存隨機令牌的 SHA-256 摘要。有效期 12 小時,不滑動續期,每人最多 5 個會話,新登入僅取代自己的最舊超額會話。

正常重新啟動保留會話,退出先撤銷資料庫會話,再清除 Cookie。瀏覽器只在本機保存主題與語言偏好,不保存會話令牌。頁面在聚焦與定期檢查時同步會話狀態,失效後回到登入。

忘記管理者密碼使用 本地恢復命令,不要刪除資料庫。管理員可以建立成員或透過邀請連結讓新成員自行註冊;目前沒有開放式註冊。

HTTPS 與反向代理

網路部署在反向代理程式終止 HTTPS,並設定瀏覽器實際存取的 origin:

配置对外访问地址
SUBLANE_PUBLIC_URL=https://sublane.example.com

後端綁定 loopback 或私有網路。瀏覽器寫入操作驗證精確 origin,不會隱含信任轉送的 Host、協定或來源位址頭。開發時 Vite 代理程式必須保留 Host,使用 changeOrigin: false。

認證有進程內、按來源與全局的頻率限制;反向代理後使用者可能共享代理的來源預算。密碼哈希最多同時執行兩次。相關限制不是整個進程記憶體佔用的保證。

認證介面

介面作用
GET /api/auth/state公開讀取初始化狀態與目前使用者
POST /api/auth/setup未初始化時建立管理員、命名首個工作空間
POST /api/auth/login使用 username、password 登入
POST /api/auth/register使用有效邀請連結建立成員帳號並登錄
POST /api/auth/logout同源、空 JSON 請求體,撤銷目前會話
POST /api/members/invitations管理員建立有效期 7 天、只能使用一次的邀請鏈接
GET /healthz、GET /readyz存活與就緒探針

管理介面預設要求管理員,明確的個人介面接受啟用的兩種角色並從會話取得擁有者。模型網關使用獨立 API 金鑰,不能拿它登入管理後台。

雙重驗證 · 通行金鑰

/preferences

密碼登入時增加驗證器動態碼。此設定適用於你在所有工作區中的帳戶。 透過指紋、臉部或裝置 PIN 免密碼登入。經過裝置驗證的通行金鑰也符合雙重驗證要求。最多可新增 10 個。

請妥善保存。每個復原碼僅能使用一次,可代替驗證器驗證碼。關閉後不再顯示;更換後舊復原碼全部失效。

通行金鑰需要 HTTPS 或 localhost,以及支援 WebAuthn JSON 的瀏覽器。