iPhone не получает токен от Instagram API через неявную аутентификацию

1

При использовании Android с Chrome, Windows с Chrome, Macbook с Safari все работает нормально. Проблема только в iPhone.

Обычно я получаю ответ вроде:

http://redirecturl.com/#access_token=ACCESS_TOKEN

С iPhone я получаю только:

http://redirecturl.com/

Мне нужно получить доступ к значению # с помощью javascript, поэтому я использую:

location.hash

Я также попробовал следующее, чтобы получить полный адрес:

location.href

Но никто не получает мне хэш-значения, предоставленные Instagram.

Либо Instagram не отвечает с помощью #access_token, либо "умный" iPhone взбивает все, получая ответ.

Теги:
instagram

1 ответ

0

Есть два способа получить один: серверный или клиентский. Второй вариант (называемый неявной аутентификацией) может использоваться только тогда, когда неявный OAuth включен в настройках клиента

(Управление клиентами> Изменить клиент> Безопасность> Отключить неявный OAuth).

По умолчанию он отключен.

В любом случае вам необходимо перенаправить пользователя на URL авторизации, чтобы получить токен доступа. URL-адрес для явного режима: - Ссылка на API на стороне сервера

URL-адрес для неявного режима: - Интерфейс API на стороне клиента

После этого вы будете перенаправлены на REDIRECT-URI, которому будет передан аргумент. Для явного режима это будет строка запроса с кодом, в то время как для неявного режима вы получите токен доступа непосредственно к хэшу:

your-redirect-uri?code=CODE
your-redirect-uri#access_token=ACCESS-TOKEN

Для неявного режима вы можете получить токен доступа из window.location.hash в Javascript.

  • 0
    вот документ, на который вы можете сослаться: - instagram.com/developer/authentication
  • 0
    это именно то, что не работает window.location.hash, только с iPhone

Ещё вопросы

Сообщество Overcoder
Наверх
Меню