2016-08-31 3 views
1

Я создал приложение Instagram. Пользователи могут аутентифицироваться, а затем перечислять свои загруженные изображения.Проверка подлинности приложения Instagram без перенаправления

К сожалению, для процесса аутентификации требуется перенаправление, и я хотел бы сделать это без перенаправления.

Возможно ли это?

ответ

0

Нет, его не представляется возможным, вы должны использовать OAuth, чтобы войти и access_token, это только один раз, вы можете хранить access_token и использовать его для выполнения вызовов API, если он терпит неудачу с недопустимой access_token, то вы спросите пользователь для повторного входа в систему и получения обновления access_token

1

API-интерфейс Instagram использует OAuth 2.0, имейте в виду, что все запросы API должны выполняться через SSL (https: //).

URL-адрес перенаправления указывает, где мы перенаправляем пользователей после того, как они выбрали проверку подлинности вашего приложения. Этот uri необходим для захвата ответа API.

У вас есть два пути: Authenticate

1. сторона сервера:

  1. Прямых вашего пользователю URL авторизации.

    Как только пользователь авторизует ваше приложение, Instagram переадресует ваш URL-адрес перенаправления с параметром кода, который будет использоваться для получения токена пользователя.

  2. Запроса маркер доступа пользователя:

    Теперь вам нужно обменять код, который вы получили в предыдущем шаге для маркеров доступа. Вы должны отправить этот код вместе с некоторыми идентификационными параметрами приложения.

    В случае успеха этот вызов вернет токен OAuth.

2. Client-Side

  1. Прямая ваш пользователь URL авторизации.

  2. Получить маркер доступа через URL:

    После того, как проверка подлинности пользователя, а затем уполномочил приложение, Instagram перенаправлять переадресацией URI с маркером доступа во фрагменте URL.


Instagram информация: https://www.instagram.com/developer/authentication/

0

Вы не обязательно должны перенаправить (в традиционном смысле)!

После выдачи первоначального запроса, например. https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

Instagram действительно реагирует с 302 редирект на URL, указанный в redirect_uri и URI будут приложены к нему либо параметр code или access_token в зависимости от типа потока, который вы используете (задается оригинала response_type)

Если ваш веб-клиент способен перехватывать запрос на перенаправление перед его запуском, вы можете собрать параметр 'code' или 'access_token' из URL-адреса перенаправления и продолжить по желанию.

Например: с iOS существует метод делегирования UIWebView «shouldStartLoadWithRequest», который вы можете использовать для проверки URI перенаправления и отмены фактического запроса до его загрузки. Поскольку URI перенаправления имеет то, что вам нужно, вы можете делегировать любую дальнейшую обработку в фоновый поток (или что-то еще) и продолжать, как вам будет угодно.