веб-сервис https PHP/MySQL с логином ios в instagram
Я пытаюсь сосредоточиться на чем-то. Я хочу создать веб-сервис, который обращается к базе данных из приложения ios/Android. Теперь я хочу, чтобы пользователь мог войти в приложение через API Instagram.
Я немного запутался в том, как они связаны друг с другом. Очевидно, что первый шаг - войти в систему с помощью Instagram. Что мне тогда делать? Я хотел бы сохранить эту информацию о пользователе, которую я получаю (скажем, по крайней мере, имя пользователя/идентификатор), в базе данных с некоторой другой информацией, которая не поступает из Instagram, как и местоположение. Все это безопасным способом. могу ли я использовать для этого токен instagram? Я немного зациклился на этом процессе...
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, вы должны:
- Поиск для вас использует таблицу для строки с тем же идентификатором instagram_userid, возвращенным api instagram.
- Если идентификатор instagram_userid уже существует, вы должны аутентифицировать пользователя в СВОЕМ приложении сейчас (например, с помощью СЕАНСОВ/ФАЙЛОВ COOKIE, т.Е. обычным способом, которым вы пользовались всю свою жизнь).
- Если идентификатор 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)
);
- Всякий раз, когда пользователь проходит аутентификацию через API Instagram, вы должны искать в своей таблице пользователей строку с тем же идентификатором, что и возвращенный с помощью API Instagram.
- Если строка существует, аутентифицируйте этого пользователя в своем приложении.
- Если строка не существует, создайте ее и аутентифицируйте пользователя.
Объединение учетных записей
Если ваше приложение обрабатывает как аутентификацию по имени пользователя/паролю, так и, возможно, других поставщиков аутентификации, вам следует ожидать, что пользователь может забыть, что он зарегистрировался через ваше приложение с помощью lets way Instagram Auth, и попытаться пройти аутентификацию с помощью имени пользователя/пароля. Если в этом случае вы можете предоставить способ объединения учетных записей вместо их дублирования. Например, если пользователь электронной почты Instagram существует в вашей базе данных в качестве имени пользователя, вы должны обновить эту строку данными api instagram, а не предполагать, что это новая учетная запись. Таким образом, теперь ваш пользователь может аутентифицироваться как с помощью имени пользователя/пароля, так и с помощью Instagram.
Маркер доступа
Маркер доступа к instagram сохраняется, но не используется. Почему? Потому что он будет использоваться для извлечения instagram данные, такие как сообщения пользователя, список друзей и т.д. Если вы хотите это сделать, вы не должны предполагать, что токен действителен, потому что срок его действия может истечь, поэтому вам следует обработать срок действия токена и предоставить способ повторной аутентификации пользователя.
Чтобы сделать то, что вы ищете, самый простой способ - это создать веб-сервис Rest.
С помощью этого веб-сервиса ваши приложения для iOS и Android смогут подключаться и отправлять/получать данные.
Ваш веб-сервис должен отвечать за управление всеми данными, сохранение или получение информации из базы данных. И может также отвечать за аутентификацию пользователя.
Для связи с вашим веб-сервисом ваше приложение может использовать JSON. Поэтому вам следует научиться отправлять и анализировать JSON.
Хорошо Удачи!
Полезные ссылки:
Интеграция Instagram в Учебное пособие по приложениям для Android
ОБНОВЛЕНИЕ
Чтобы сопоставить пользователя instagram с вашей базой данных, вы можете использовать предоставленный идентификатор пользователя:
{
"access_token": "fb2e77d.47a0479900504cb3ab4a1f626d174d2d",
"user": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "..."
}
}