Кодируйте полные URL-адреса, декодируйте ссылки обратного вызова и экранируйте значения параметров запроса, не теряя при этом структуру исходного запроса.
Кодирование значений redirect_uri или обратного вызова? Используйте руководство по правилам на уровне компонента, а затем вернитесь сюда, чтобы закодировать или декодировать точное значение.
Кодирование URL-адресов, также известное как процентное кодирование, преобразует пробелы, символы Юникода и зарезервированные символы в транспортно-безопасный формат. Используйте его, когда 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 protected]
email=dev%2Balerts%40example.com
Кодируйте полный URL-адрес, если вы хотите, чтобы одна полная ссылка оставалась читабельной и сохраняла разделители, такие как ?, & и =, неповрежденными. Кодируйте одно значение параметра, когда данные должны помещаться в одну пару ключ=значение, например redirect_uri, состояние или поисковый запрос.
encodeURI сохраняет структурные символы URL, такие как:, /, ? и #, для полной ссылки. encodeURIComponent также экранирует эти зарезервированные символы, что делает его более безопасным выбором для значений параметров запроса, вложенных URL-адресов и скопированных целей обратного вызова.