Кажется, есть некоторое недопонимание относительно того, как работает OAuth 2.0.
В вашем вопросе вы используете слово callback , как если бы серверы Fitbit собирались сделать HTTP-запрос на этот URL, но это не так. В результате пользовательский агент, на котором была отображена страница авторизации Fitbit, получает ответ HTTP 302 Found
с заголовком Location
, содержащим URI перенаправления. Таким образом, это ответ , а не обратный вызов, и он инструктирует пользовательский агент загружать URI, указанный в заголовке Location
(и, если пользовательский агент является браузером, он будет).
Обычно вы устанавливаете redirect_uri
на страницу в вашем приложении, где ваш пользователь уже вошел в систему, чтобы вы могли идентифицировать идентификатор пользователя по данным сеанса (как и для любой другой страницы в вашем приложении). )
Если по какой-то причине вышеперечисленное не работает для вас, вы можете использовать параметр запроса state
при перенаправлении пользователя на страницу авторизации OAuth 2.0 Fitbit. Документация Fitbit «Использование OAuth 2.0» описывает параметр state
следующим образом:
Предоставляет любое состояние, которое может быть полезным для вашего приложения, когда пользователь перенаправляется обратно в ваше приложение. Этот параметр будет добавлен в URI перенаправления в точности так, как указано в вашем приложении.
Параметр state
является стандартной функцией OAuth 2.0, поэтому он не относится к Fitbit. Его можно использовать с любым сервисом, который правильно реализует OAuth 2.0 в соответствии с RFC 6749 .