#oauth-2.0 #reddit #implicit-grant #reddit-access-token
#oauth-2.0 #Reddit #неявное предоставление #reddit-access-token
Вопрос:
Я довольно усердно искал существующий ответ на этот вопрос, потому что у меня такое чувство, что я допустил глупую ошибку, поэтому, пожалуйста, дайте мне знать, если об этом уже спрашивали, и я его не нашел.
Я пытаюсь создать небольшое установленное приложение, которому необходимо получить доступ к OAuth Reddit API, и поскольку оно установлено, оно должно быть с помощью неявного потока предоставления.
Вот процесс, который я пытаюсь использовать:
Я прошу пользователя открыть этот URL (удалена личная информация):
Но когда пользователь перенаправляется после авторизации, он переходит на URL, который выглядит следующим образом:
http://localhost:3000/#access_token=[token]amp;token_type=beareramp;state=[random_state_data]amp;expires_in=3600amp;scope=read
Проблема в том, что токен доступа находится в запросе? строка после идентификатора фрагмента (#), поэтому я не могу получить к ней доступ с сервера, размещенного на порту 3000. Я допустил ошибку в том, как я обработал аутентификацию? Или это что-то более тонкое?
Заранее спасибо за вашу помощь и дайте мне знать, если вам нужна дополнительная информация или я допустил ошибку, задав этот вопрос.
Ответ №1:
Оказывается, это классический случай, когда в руководстве чего-то не хватает.
В информации о неявном потоке предоставления Reddit:
ответ на этот запрос, в случае успеха, будет закодирован в виде фрагмента со следующими значениями:
Таким образом, это было полностью преднамеренное поведение, которое я просто не уловил. Я думаю, мне просто нужно будет проделать некоторую магию Javascript, чтобы получить токен из фрагмента на мой сервер.
Извините, если я отнял у кого-то время.