Настроить фейсбук для входа

Разработка процесса входа вручную

Для мобильных приложений используйте Facebook SDK для iOS и Android и следуйте руководствам для соответствующей платформы.

Однако если вам необходимо реализовать вход через браузер в веб-приложение или приложение для компьютера без использования наших SDK (например, создать веб-просмотр для нативного приложения для ПК в Windows 8 или процесс входа с использованием исключительно серверного кода), то вы можете создать для себя процесс входа с использованием перенаправлений в браузере. В этом руководстве рассматриваются все этапы процесса входа и рассказывается, как реализовать каждый из них, не используя наши SDK.

Для использования входа через Facebook в приложении для ПК вам потребуется встроить в приложение веб-браузер (иногда его называют веб-просмотром), через который и будет реализован вход.

Проверка статуса входа

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

Читайте также:  Как настроить время блокировки экрана айфона

Вход в приложение

Если человек не вошел в ваше приложение или не вошел в Facebook, с помощью диалога входа вы можете предложить оба варианта. Пользователю сначала будет предложено войти в Facebook, если он этого ещё не сделал, а затем — в приложение. Обнаружение статуса входа происходит автоматически, поэтому для активации этой функции никакие дополнительные действия не потребуются.

Вызов диалога входа и настройка URL перенаправления

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

Обязательные параметры этой конечной точки:

Предположим, что запрос входа выглядит следующим образом:

В этом случае URI перенаправления будет таким:

Он также содержит следующие необязательные параметры:

Для приложений в Windows 8

Если вы реализуете вход в приложении для Windows, для параметра redirect_uri можно использовать идентификатор безопасности пакета. Чтобы открыть диалог входа, вызовите WebAuthenticationBroker.AuthenticateAsync и используйте конечную точку Login Dialog в качестве значения requestUri. Вот пример такой реализации на JavaScript:

Управление возвращается в приложение с маркером доступа в случае успеха или ошибкой в случае сбоя.

Обработка ответа диалога «Вход»

На этом этапе в процессе входа пользователь видит диалог входа и может выбрать отмену или разрешить приложению доступ к своим данным.

Если пользователь нажимает кнопку «ОК» в диалоге входа, он предоставляет приложению доступ к своему общедоступному профилю, списку друзей, а также дополнительные разрешения, которые оно запросило.

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

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

Клиентский код на JavaScript может извлекать из строки фрагменты URL (например, jQuery BBQ), а параметры URL можно отслеживать как в клиентском, так и в серверном коде (например, $_GET в PHP, jQuery.deparam в jQuery BBQ, querystring.parse в Node.js или urlparse в Python). Корпорация Microsoft предоставляет руководство и пример кода для приложений Windows 8, которые подключаются к онлайн-поставщику (в данном случае к Facebook).

При входе через приложение для компьютера Facebook перенаправляет пользователя на указанный выше адрес redirect_uri и добавляет во фрагмент URI маркер доступа, а также некоторые другие метаданные (например, время истечения срока действия маркера):

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

Отмена входа

Если пользователь приложения не принимает диалог входа и нажимает кнопку «Отмена», он перенаправляется на следующий адрес:

Дополнительные сведения о том, что должны делать приложения, когда пользователи отказываются от входа, см. в этом разделе.

Подтверждение личности

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

Обратите внимание: вы также можете сгенерировать собственный параметр state и использовать его со своим запросом входа, чтобы обеспечить защиту от межсайтовой подделки запросов.

Обмен кода на маркер доступа

Чтобы получить маркер доступа, отправьте HTTP-запрос GET на следующую конечную точку OAuth:

Обязательные параметры этой конечной точки:

Обратите внимание: начиная с версии 2.3 эта конечная точка возвращает корректный ответ JSON. Если в вашем вызове не указана версия, по умолчанию будет использоваться самая старая из доступных.

Ответ

В случае успеха вы получите от конечной точки следующий ответ в формате JSON:

В противном случае вы получите сообщение об ошибке с объяснением причин.

Проверка маркеров доступа

Независимо от того, использует ли ваше приложение code или token в качестве response_type от диалога входа, оно получит маркер доступа. Для автоматической проверки таких маркеров можно использовать конечную точку API Graph:

Эта конечная точка принимает следующие параметры:

Ответом на вызов API будет массив JSON с данными о проверенном маркере. Пример:

С помощью полей app_id и user_id приложение проверяет, действителен ли маркер доступа для пользователя и для самого приложения. Полное описание других полей см. в руководстве по получению информации о маркерах доступа.

Проверка разрешений

Выполнив вызов к границе контекста /me/permissions , можно получить список разрешений, которые были предоставлены или отклонены определенным пользователем. Таким образом приложение может проверить, какие именно из запрошенных разрешений ему доступны для того или иного пользователя.

Повторный запрос отклоненных разрешений

Вход через Facebook позволяет людям отказаться от предоставления определенных разрешений. Диалог «Вход» содержит экран, который выглядит примерно так:

Разрешение public_profile требуется всегда. Оно показано серым цветом, потому что его нельзя отключить.

Однако если бы пользователь в этом примере снял флажок user_likes (отметки «Нравится»), результат проверки /me/permissions на предмет того, какие разрешения были предоставлены, был бы следующим:

Обратите внимание, что разрешение user_likes не предоставлено, а отклонено.

Если вам отказали в предоставлении разрешений, их можно запросить повторно. Подготовьте экран с пояснением, зачем вам нужно это разрешение, и запросите его снова. Однако если вы вызовете диалог входа прежним способом, запрос этого разрешения будет отсутствовать.

Дело в том, что, если пользователь отказался предоставить разрешение, диалог входа не будет запрашивать его повторно, если только вы явным образом не настроите в нем повторный запрос отклоненного разрешения.

Добавьте в URL диалога входа параметр auth_type=rerequest :

В результате диалог входа будет заново запрашивать отклоненное разрешение.

Сохранение маркеров доступа и статуса входа

На этом этапе пользователь уже прошел проверку подлинности и вошел в приложение. Приложение готово отправлять вызовы API от его имени. Однако перед этим оно должно сохранить маркер доступа и статус входа пользователя.

Сохранение маркеров доступа

Получив маркер доступа, как описано на предыдущем шаге, приложение должно сохранить его, чтобы к нему его компоненты могли использовать этот маркер при отправке вызовов API. Какой-то определенной процедуры для этого не существует, однако в случае веб-приложения обычно рекомендуется добавить маркер в переменную сеанса, чтобы связать этот сеанс браузера с определенным пользователем, а в нативном приложении для ПК и в мобильном приложении следует использовать доступное ему хранилище данных. Кроме того, приложение должно хранить маркер в базе данных вместе с user_id для его идентификации.

Подробнее о размере маркеров доступа см. в этом разделе.

Отслеживание статуса входа

Ваше приложение также должно сохранить статус входа пользователя, чтобы избежать дополнительных вызовов диалога «Вход». Какую бы процедуру вы для этого ни выбрали, измените соответствующим образом процесс проверки статуса входа.

Выход из приложения

Чтобы реализовать выход пользователя из приложения, можно отменить соответствующие изменения индикатора статуса входа (например, удалить сеанс, обозначающий, что пользователь вошел в приложение). Кроме того, следует удалить сохраненный маркер доступа.

Выход из приложения — не то же самое, что отзыв разрешения на вход (т. е. отмена пройденной ранее аутентификации). Последнюю процедуру можно выполнить отдельно. Поэтому ваше приложение не должно автоматически возвращать людей, вышедших из него, к диалогу «Вход».

Обнаружение удаления приложений

Люди могут удалять приложения через Facebook.com без непосредственного взаимодействия с ними. Чтобы приложения могли отслеживать такие операции, они могут предоставлять URL обратного вызова для отмены авторизации, который вызывается при наступлении такого события.

Включить обратный вызов отмены авторизации можно в Панели приложений. Просто перейдите в свое приложение, выберите Продукты > Вход через Facebook > Настройки. Вы увидите текстовое поле для URL обратного вызова отмены авторизации.

Каждый раз, когда пользователь приложения отменяет его авторизацию, на этот URL отправляется запрос HTTP POST с подписанным запросом. Информацию о том, как его декодировать и определить ID пользователя, инициировавшего обратный вызов, см. в нашем руководстве по синтаксическому анализу подписанных запросов.

Реагирование на запросы об удалении пользовательских данных

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

Источник

Настройка авторизации через Facebook

Как настроить авторизацию посетителей сайта через Facebook в личном кабинете и для оформления заказа

Если у вас несколько сайтов, то авторизацию нужно настроить отдельно для каждого сайта.

  1. Установите SSL-сертификат для доменного имени своего сайта.

Если ваш домен работает в облаке Webasyst, закажите установку сертификата через приложение «Облако» или в Центре заказчика.

Напишите любое название и свой email-адрес. Нажмите на «Создайте ID приложения».


После сохранения вас перенаправит в панель управления приложением. В разделе «Продукты → Добавить продукт » выберите «Вход через Facebook → Настроить».


Откроется мастер настройки. Пропустите его — сразу перейдите в раздел «Продукты → Вход через Facebook → Настройки».


Включите «Клиентская авторизация OAuth».

В поле «Действительные URI перенаправления для OAuth» введите URL вида

https://mydomain.ru/oauth.php?provider=facebook

Замените mydomain.ru на домен своего сайта.

Сохраните изменения.
Перейдите в раздел «Настройки → Основное» и скопируйте «Идентификатор приложения» и «Секрет приложения».

Оставьте открытой вкладку с настройками фейсбук-приложения.

  • В новой вкладке браузера войдите в бекенд Вебасиста и перейдите в приложение «Сайт».
  • В списке сайтов выберите тот, для которого вы настраиваете авторизацию через «Фейсбук».
  • Откройте раздел «Личный кабинет».
  • Включите авторизацию для выбранного сайта.


    В секции «Социальные сети (дополнительный способ входа)» включите пункт «Авторизация через внешние сервисы».


    Если этот пункт уже включен, откройте его настройки с помощью ссылки «Настройки».
    Включите флажок напротив «Facebook».

  • Вставьте скопированные значения из настроек фейсбук-приложения в поля «Идентификатор приложения » и «Секрет приложения».
  • Сохраните настройки авторизации внизу страницы.
  • В разделе «Страницы» создайте опубликованную страницу с условиями политики конфиденциальности для пользователей «Фейсбука». Откройте страницу на своем сайте и скопируйте ее URL.
  • Вернитесь на вкладку с настройками фейсбук-приложения и откройте раздел «Настройки → Основное». В поле «URL-адрес политики конфиденциальности» вставьте скопированный URL страницы с условиями политики конфиденциальности.


    С помощью переключателя вверху страницы переведите приложение из статуса разработки в опубликованный статус, чтобы авторизация через «Фейсбук» начала работать.

  • Проверьте, как работает авторизация:
    • Откройте свой сайт в режиме браузера «инкогнито». Или в другом браузере, где вы не авторизованы ни в своем Вебасисте, ни в «Фейсбуке».
    • Перейдите по ссылке «Вход».
    • Щелкните по иконке «Фейсбука».


    Введите данные для входа в соцсеть.

  • После обновления страницы откроется личный кабинет зарегистрированного посетителя вашего сайта.
  • Готово! Авторизация через Facebook настроена.

    11 комментариев

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

    1. если через окно инкогнито, ошибка: «Вход не выполнен: Вы не вошли в систему. Выполните вход и повторите попытку.»

    2. Если с обычного режима, (даже когда вышла из аккаунта), ошибка: Insecure Login Blocked: You can’t get an access token or log in to this app from an insecure page. Try re-loading the page as https://

    В чем может быть проблема?

    Похоже, что авторизоваться нужно со страницы, открытой по протоколу HTTPS. Для этого на вашем домене должен быть установлен SSL-сертификат.

    А где взять текст этой политики конфиденциальности? или свой нужно сочинить?

    полный пипец !! по чему инструкцию не обновляет ни кто .

    Теперь расскажите подробнее, где вы столкнулись с неактуальным описанием настройки. Покажите проблему на снимках экрана для наглядности.

    Шаг 3 ведет сюда, а дальше что нажимать, или с сертификатом что то не так?

    Судя по вашему снимку, возможно, вы перешли на страницу https://developers.facebook.com/, а нужно перейти на https://developers.facebook.com/apps/.

    Странно, я пытаюсь пройти по этой ссылке, но последний тэг apps/ после перехода пропадает и мне выдает https://developers.facebook.com сюда. Я уже ее и просто копирую и вставляю в разные браузеры и инкогнито. Это зависит от браузера или какой-то доп авторизации?

    Возможно, в вашем браузере когда-то раньше сработало перенаправление с этого адреса, и браузер это запомнил. Проверьте в другом браузере или очистите историю посещений в основном браузере, если для вас она не очень важна.

    Все победил, не был зарегистрирован адрес почты. Но инструкция действительно не отразила действительность, я к своему глубочайшему сожалению не сделал скрины но на шаге 5 такой кнопки не было «Нажмите на «Создайте ID приложения».» Там были 4 других кнопки, но ни чего утверждать не буду, возможно через мой вход как то все по другому отразилось т.к. это фэйсбук. Но кому-нибудь из знающих и понимающих лучше бы проверить и пробежаться по шагам. Спасибо!

    Источник

    Оцените статью