Почему я должен указывать URI перенаправления при использовании токена авторизации для получения токена доступа в OAuth2? - PullRequest
0 голосов
/ 25 марта 2019

Этот код работает

Я занимаюсь серфингом Я получил код, просматривая профиль https://app.stex.com/oauth/authorize?response_type=code&client_id=144&scope=trade, затем получил код.

Я поместил код в свою программу

  Dim code = "def50200354606432acfb60c836ac40ff440dc2755164756cd7e34ddcf9cd4db8df87cabe71bf5e5c5c278c18c81b0415ba47da34f83ddaab0a84696e1722e266aec2e7942ed86e40e65b0dcf7428aad2747920de6cf8585ce281214f2ecc7353e807640320ca263013387ea0b2d466e2cc31b46c2a2e7b1dd33cdc518efa20b76b752734174f2b500450ed1ccb434611b0bdc458fcfed69a2ab2a5f91242f1f68c504d3151048c49eaf976eff6bbb922dac1acbba069fc8b57fd74069eeadf24c067edf4563aa5ad14b0d9740f1518723ba1c5637164e5e3c4d408102f49c0f63d8f3f5dfbfe11132d242a182e4af3449e811292d1ac69aadf74608a5383b9c4030de3579c98b07c4f087752f7e404f4897d8167b3d8ad266bdb42f74b539cc3fef6ce774edd35d305e655e984028614e50afe760acc754de70986dc7651ac760d5817c665ef1238d0811190763dbfd65993408d12dcf7926be6c71afb5d8a10528c174647934bdd1e4fcf1f4a800b8a74a7ae93bf60b02c602900a981bdb75e9de2b17f359ee"

Тогда я делаю

    Dim token2 = CookieAwareWebClient.downloadString1("https://api3.stex.com/oauth/token", "grant_type=authorization_code&code=" + code + "&client_id=" + _apiKey1 + "&client_secret=" + _secret1 + "&redirect_uri=https://apidocs.stex.com/oauth2-redirect.html", {})

    Dim jtoken1 = JToken.Parse(token2)
    Dim refreshtoken = jtoken1.Item("refresh_token").ToString

И это работает.

Однако этот код не работает

Dim token2 = CookieAwareWebClient.downloadString1("https://api3.stex.com/oauth/token", "grant_type=authorization_code&code=" + code + "&client_id=" + _apiKey1 + "&client_secret=" + _secret1, {})

    Dim jtoken1 = JToken.Parse(token2)
    Dim refreshtoken = jtoken1.Item("refresh_token").ToString

Единственное отличие состоит в том, что впервый код, который я добавил + "&redirect_uri=https://apidocs.stex.com/oauth2-redirect.html"

По сути, я создаю API Stex.

У моего клиента есть только один URL-адрес перенаправления.Так почему я должен указать этот URL перенаправления, который больше не используется, и сервер все равно знает, для https://api3.stex.com/oauth/token url?

Я думаю, что я прочитал RFC

4.1.3.Запрос токена доступа

Клиент отправляет запрос конечной точке токена, отправляя следующие параметры в формате «application / x-www-form-urlencoded» в Приложении B с кодировкой символов UTF-8 вТело сущности HTTP-запроса:

[...]

redirect_uri

REQUIRED, если параметр "redirect_uri" был включен в запрос авторизациикак описано в Разделе 4.1.1, и их значения ДОЛЖНЫ быть идентичны.

Это говорит о том, что redirect_URI требуется, если параметр был включен.

Я не включал параметркогда я запрашиваю код авторизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...