在不破壞原始請求結構的情況下,對完整 URL 進行編碼、解碼回撥連結,並轉義查詢引數值。
在編碼 redirect_uri 或回撥值嗎?先閱讀按元件說明規則的指南,然後回到這裡精確編碼或解碼該值。
URL 編碼(也稱百分號編碼)會把空格、Unicode 和保留字元轉換為適合傳輸的安全格式。當瀏覽器 URL、redirect_uri、API 查詢值或複製來的回撥連結需要在傳輸過程中保持原意時,就該使用它。
如果你想在一條完整連結中繼續清晰保留 :, /, ?, &, = 這樣的分隔符,請使用完整 URL 編碼。如果某個值必須放進查詢引數、重定向目標或巢狀回撥 URL 中,請使用元件編碼。
redirect_uri=https://app.example.com/callback?next=/settings
redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback%3Fnext%3D%2Fsettings
https://app.example.com/callback?next=%2Fsettings%3Ftab%3Dprofile
https://app.example.com/callback?next=/settings?tab=profile
email=dev%2Balerts%40example.com
如果你希望整條連結仍然可讀,並保留 ?, &, = 這樣的分隔符,就應該編碼完整 URL。如果資料必須放進單個 key=value 對中,例如 redirect_uri、state 或搜尋詞,就只編碼該引數值。
encodeURI 會為完整連結保留 :, /, ?, # 等 URL 結構字元。encodeURIComponent 也會轉義這些保留字元,因此它更適合查詢引數值、巢狀 URL 和複製來的回撥目標。