веб-сервис https PHP/MySQL с логином ios в instagram


Я пытаюсь сосредоточиться на чем-то. Я хочу создать веб-сервис, который обращается к базе данных из приложения ios/Android. Теперь я хочу, чтобы пользователь мог войти в приложение через API Instagram.

Я немного запутался в том, как они связаны друг с другом. Очевидно, что первый шаг - войти в систему с помощью Instagram. Что мне тогда делать? Я хотел бы сохранить эту информацию о пользователе, которую я получаю (скажем, по крайней мере, имя пользователя/идентификатор), в базе данных с некоторой другой информацией, которая не поступает из Instagram, как и местоположение. Все это безопасным способом. могу ли я использовать для этого токен instagram? Я немного зациклился на этом процессе...

Author: SunnySonic, 2017-11-30

2 answers

После выполнения шага 3 Авторизация Instagram , которая довольно проста, и я не буду об этом говорить, так как вы задаетесь вопросом, как интегрировать данные Instagram с вашей базой данных, вы должны получить следующий json:

{
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "..."
    }
}

То, что вы делаете с данными, зависит от архитектуры:

1) Пользователь может авторизоваться через instagram или обычное имя пользователя/пароль

Создайте таблицу пользователей, в которой есть как поле пароля, так и instagram идентификатор пользователя:

Ваша таблица пользователей может выглядеть следующим образом:

CREATE TABLE users (
    id INT AUTO_INCREMENT NOT NULL ,
    username VARCHAR(255) NOT NULL,
    password VARCHAR(255) DEFAULT NULL,
    instagram_userid INT DEFAULT NULL,
    instagram_accesstoken VARCHAR(255) DEFAULT NULL,
    PRIMARY KEY(id)
);

Каждый раз, когда пользователь проходит аутентификацию через Instagram, вы должны:

  1. Поиск для вас использует таблицу для строки с тем же идентификатором instagram_userid, возвращенным api instagram.
  2. Если идентификатор instagram_userid уже существует, вы должны аутентифицировать пользователя в СВОЕМ приложении сейчас (например, с помощью СЕАНСОВ/ФАЙЛОВ COOKIE, т.Е. обычным способом, которым вы пользовались всю свою жизнь).
  3. Если идентификатор instagram_userid не существует, вам следует создайте строку пользователя с именем пользователя, возвращаемым API Instagram. Также аутентифицируйте этого пользователя с помощью СЕАНСА.

2) Instagram - ваш единственный пользовательский выбор для аутентификации

Затем вам следует просто создать таблицу пользователей, которая является только зеркалом для возврата api instagram. Вы можете использовать идентификатор instagram_userid в качестве основного ключа:

CREATE TABLE users (
    username VARCHAR(255) NOT NULL,
    instagram_userid INT DEFAULT NULL,
    instagram_accesstoken VARCHAR(255) DEFAULT NULL,
    PRIMARY KEY(instagram_userid)
 );
  1. Всякий раз, когда пользователь проходит аутентификацию через API Instagram, вы должны искать в своей таблице пользователей строку с тем же идентификатором, что и возвращенный с помощью API Instagram.
  2. Если строка существует, аутентифицируйте этого пользователя в своем приложении.
  3. Если строка не существует, создайте ее и аутентифицируйте пользователя.

Объединение учетных записей

Если ваше приложение обрабатывает как аутентификацию по имени пользователя/паролю, так и, возможно, других поставщиков аутентификации, вам следует ожидать, что пользователь может забыть, что он зарегистрировался через ваше приложение с помощью lets way Instagram Auth, и попытаться пройти аутентификацию с помощью имени пользователя/пароля. Если в этом случае вы можете предоставить способ объединения учетных записей вместо их дублирования. Например, если пользователь электронной почты Instagram существует в вашей базе данных в качестве имени пользователя, вы должны обновить эту строку данными api instagram, а не предполагать, что это новая учетная запись. Таким образом, теперь ваш пользователь может аутентифицироваться как с помощью имени пользователя/пароля, так и с помощью Instagram.

Маркер доступа

Маркер доступа к instagram сохраняется, но не используется. Почему? Потому что он будет использоваться для извлечения instagram данные, такие как сообщения пользователя, список друзей и т.д. Если вы хотите это сделать, вы не должны предполагать, что токен действителен, потому что срок его действия может истечь, поэтому вам следует обработать срок действия токена и предоставить способ повторной аутентификации пользователя.

 1
Author: Marco Nicolodi, 2017-12-19 00:05:17

Чтобы сделать то, что вы ищете, самый простой способ - это создать веб-сервис Rest.

С помощью этого веб-сервиса ваши приложения для iOS и Android смогут подключаться и отправлять/получать данные.

Ваш веб-сервис должен отвечать за управление всеми данными, сохранение или получение информации из базы данных. И может также отвечать за аутентификацию пользователя.

Для связи с вашим веб-сервисом ваше приложение может использовать JSON. Поэтому вам следует научиться отправлять и анализировать JSON.

Хорошо Удачи!

Полезные ссылки:

API Instagram для Instagram

Интеграция Instagram в Учебное пособие по приложениям для Android

ОБНОВЛЕНИЕ

Чтобы сопоставить пользователя instagram с вашей базой данных, вы можете использовать предоставленный идентификатор пользователя:

{
    "access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
    "user": {
        "id": "1574083",
        "username": "snoopdogg",
        "full_name": "Snoop Dogg",
        "profile_picture": "..."
    }
}

См.: Аутентификация в Instagram

 3
Author: jNewbie, 2017-12-05 00:58:38