為什麼你在登入整合 Logto 的應用時可能會看到 404
你是否曾在嘗試登入一個整合了 Logto 的應用時遇到「404 Not Found」錯誤?這篇部落格文章會說明為什麼會發生這種情況,以及你該如何避免它。
背景
你是否曾經在使用 Logto 驗證的應用中嘗試登入時,遇到「404 not found」錯誤?你或你的終端用戶有遇到過同樣的問題嗎?

這種情況發生在你直接訪問登入頁面(例如:https://your-app.com/sign-in
),而沒有經過應用內預期的登入流程時。
原因如下:
OIDC 流程的重要性
Logto 依賴 OpenID Connect (OIDC) 協定 來進行安全驗證。當你從正常的應用流程登入時(例如通常點擊應用內的登入按鈕),應用會向 Logto 的 OIDC 伺服器發起一次通信。這個稱為「授權請求」的通信非常重要,因為它首先會對請求者進行各種驗證,然後在你的瀏覽器與伺服器之間建立一個安全的 session(由 cookie 管理)。
問題出現在使用者直接訪問「/sign-in」頁面時,這會繞過應用中觸發 OIDC 授權請求的內部邏輯。因此,伺服器無法識別你的瀏覽器有有效的 session,結果就導致 404 錯誤。
解決方法
有兩個主要方式可以避免這個問題:
一定要使用應用的登入按鈕
不要直接訪問「/sign-in」頁面,而要遵循應用提供的預期登入流程。當你在應用內點擊「登入」按鈕時,會正確發起 OIDC 的授權請求並建立必要的 session。
自動重新導向使用者
如果你的 Logto 實例只含有單一個應用,你可以考慮實作邏輯,自動攔截使用者在沒有有效 session 下訪問「/sign-in」頁面的行為,並將他們導向主頁面(顯示登入按鈕的頁面)。
為此 ,Logto 推出了「Unknown session redirect URL」設定。當你設置這個 URL 後,Logto 會自動將使用者導向你指定的頁面,而不再顯示 404 錯誤。例如,你可以把他們導向你應用的首頁或自訂登入畫面。被導向後,你的前端應用應主動發起全新的登入流程。
設定方式:進入 Logto Console,在 Logto Cloud > 登入體驗 > 註冊和登入 > 進階選項 裡面,輸入你的預設導向網址(fallback URL)。
舉例來說,Logto Cloud 預設將這裡設為 https://cloud.logto.io/
。設好後,沒有 session 的使用者訪問 /sign-in
,就會被送去這個網址重新開始驗證。
進一步提升體驗的想法
我們正嘗試提升用戶體驗,至少會在「/unknown-session」頁面添加有用訊息,解釋 404 的原因並讓使用者知道該怎麼做,不會感到困惑。例如,Logto 支援在登入錯誤頁面自訂支援 email 和網站地址,遇到錯誤的用戶就能看到你的聯絡方式並主動求助。
我們也在考慮引入其他更安全的措施,比如:如果該 Logto 實例僅有單一應用時,自動導向「Sign-out redirect URI」(通常是應用首頁),或可讓你藉由額外設定來顯示專屬訊息。
結論
「/sign-in」頁面上出現的 404 not found(session 無效)錯誤,通常是因為你直接存取登入頁的網址,跳過了正常會觸發授權請求的應用登入流程,進而未建立任何有效 session(cookie 管理)。
了解這個流程及其重要性後,你就可以避免這類錯誤,順利享用 Logto 集成應用的無縫登入體驗。
如果你有任何想法,歡迎聯絡我們一起討論!