Как привязать гугл аккаунт к фейсбуку
Как привязать Фейсбук к гугл аккаунту?
Как привязать аккаунт к фейсбуку?
Как связать аккаунт?
- Перейдите в свой профиль и нажмите значок .
- Выберите Настройки .
- Нажмите Аккаунт и выберите Связанные аккаунты.
- Нажмите Facebook и укажите данные для входа в аккаунт Facebook.
Как привязать аккаунт в гугле?
Как добавить аккаунты Google
- Если у вас нет аккаунта, создайте его.
- Откройте настройки устройства.
- Нажмите Аккаунты Добавить аккаунт Google.
- Следуйте инструкциям на экране.
- Чтобы добавить другие аккаунты, повторите эти действия.
Как использовать аккаунт Google?
Как войти в аккаунт
- Подключитесь к интернету.
- Откройте «Настройки».
- Выберите пункт «Учетные записи и архивация» или «Облако и учетные записи». …
- Выберите пункт «Учетные записи».
- Выберите пункт «Добавить учетную запись».
- Выберите пункт «Google».
- Введите адрес электронной почты нажмите «Далее».
- Введите пароль от аккаунта нажмите «Далее».
Как синхронизировать Facebook?
На вашем устройстве откройте Настройки -> Аккаунты и синхронизация (учетные записи). Выберите аккаунт Facebook (нужно быть зарегистрированным пользователем в этой соц. сети) и активируйте Синхронизацию. Готово, теперь вы можете увидеть контакты из facebook среди телефонных контактов на вашем телефоне.
Как связать аккаунт в Инстаграм с фейсбуком?
Чтобы добавить аккаунт Instagram на Страницу Facebook или удалить его со Страницы:
- Откройте свою Страницу Facebook.
- Выберите Настройки в меню в левой части экрана.
- Нажмите Instagram.
- Чтобы добавить на Страницу аккаунт Instagram, нажмите Подключить аккаунт.
Что делать если Инстаграм не подключается к фейсбуку?
- перейдите в инста с бизнес-аккаунта на личный (настройки > переключиться на личный аккаунт)
- затем привяжите инста-аккаунт к личной странице (настройки > аккаунт > связанные аккаунты > Facebook)
- вновь вернитесь на бизнес-аккаунт в (настройки > переключиться на бизнес аккаунт)
- действуйте далее по выпадающей инструкции
Как связать устройство с аккаунтом гугл?
Метод 1 из 2: Как добавить Android устройство
- Запустите приложение «Настройки» на втором устройстве. …
- Выберите «Аккаунты», чтобы отобразить все аккаунты, к которым в данный момент привязано устройство.
- Нажмите «Добавить аккаунт». …
- Выберите «Google». …
- Войдите под тем же аккаунтом. …
- Откройте Google Play Маркет.
Как привязать аккаунт Google к Android?
Как связать аккаунт Google с устройством:
- Открываем приложение «Настройки» и переходим в раздел «Личные данные».
- Нажимаем на вкладку «Аккаунты».
- Жмем на кнопку «Добавить аккаунт» и выбираем «Google».
- Вводим адрес почты и пароль.
- Настраиваем резервное копирование и указываем платежные данные (или отказываемся от предложения).
Как привязать новое устройство к гугл аккаунту?
- Возьмите телефон, который хотите добавить в Google Play. Откройте на нем настройки.
- Пролистните экран до раздела «Аккаунты» и нажмите «Добавить».
- Выберите сервисы Google.
- Если у вас уже есть учетная запись, выберите вариант «Существующий». Если профиля нет, нажмите «Новый» и зарегистрируйтесь.
Как найти все свои аккаунты в гугле?
Шаг 1. Как посмотреть общую информацию
- Откройте страницу Аккаунт Google.
- На панели навигации слева нажмите Данные и персонализация.
- Найдите раздел «Ваши действия и данные».
- Нажмите Перейти в Личный кабинет Google.
- Откроется страница со списком сервисов Google, которыми вы пользуетесь, и статистикой по вашим данным.
Как создать аккаунт Гугл если пишет ограничение по возрасту?
- Перейти на главный сайт поисковика Google.
- Найти меню для входа в учетную запись.
- В верхнем правом углу найти кнопку «Войти» и нажать на нее.
- Выбрать «Создать».
- Заполнить предоставленную анкету, где можно поменять возраст на соответствующий.
- Выполнить привязку нового аккаунта к мобильному устройству.
Как узнать свой пароль от Google аккаунта?
На странице входа в Google аккаунт нажимаем кнопку «Забыли пароль?». Появляется очередная форма, где вас попросят ввести последний пароль который вы помните.
Как перенести Facebook на другой телефон?
Перейдите к настройкам своего устройства Android и откройте диспетчер приложений. Коснитесь Facebook. Коснитесь Перенести на SD.
Как перенести аккаунт Фейсбук на другой телефон?
Часть 1: синхронизировать контакты Facebook с Android-телефоном вручную
- Шаг 1: нажмите «Учетная запись и синхронизация» в приложении «Настройки». …
- Шаг 2: выберите вариант «Facebook». …
- Шаг 3: Запустите синхронизацию контактов Facebook. …
- Шаг 1: найдите HaxSync в Google Play и установите его.
Как подключить контакты в фейсбук?
- Нажмите значок в правом верхнем углу окна Facebook.
- Прокрутите вниз и выберите Настройки и конфиденциальность, а затем — Настройки.
- Прокрутите вниз до раздела Медиаконтент и контакты и нажмите Медиаконтент и контакты.
- Нажмите Непрерывная загрузка контактов, чтобы включить или выключить эту настройку.
Как привязать Facebook к аккаунту Google?
Просто зайдите в настройки своей учетной записи Facebook, выберите Gmail в разделе «Связанные учетные записи», и все. Войдите в свою учетную запись Gmail, затем перейдите на http://facebook.com. Обратите внимание, что вы будете перенаправлены в свой профиль Facebook без предварительного входа в систему.
Как связать свой Facebook с Google?
Перейдите на страницу настроек вашей учетной записи. Щелкните вкладку «Профиль». В правой части экрана вы увидите настройки учетной записи, где вы можете связать свои учетные записи. Щелкните Подключить рядом со значками Facebook или Google, чтобы связать свои учетные записи.
Могу ли я войти в Google через Facebook?
Кто-нибудь еще хочет сделать приложение Gmail для Facebook? Благодаря инициативному разработчику приложения теперь вы можете получить доступ к Gmail из своей учетной записи Facebook с помощью приложения Gmail. … Кажется, используется фрейм, поэтому не нужно повторно вводить пароль Gmail, если вы уже вошли в систему.
Как мне получить мою учетную запись Facebook из Google?
На Facebook есть два варианта восстановления: используйте мою учетную запись Google или отправьте код по электронной почте. Выберите тот и нажмите «Продолжить». После этого вы получите проверочный код на адрес электронной почты.
Как я могу открыть свою учетную запись Gmail в Facebook?
Доступ к Facebook из Gmail
- Войдите в свою учетную запись Gmail и нажмите ссылку «Настройки» в правом верхнем углу экрана.
- Перейдите на вкладку «Лаборатория» и найдите «Добавить любой гаджет по URL-адресу». …
- Теперь у вас будет опция, добавленная на страницу настроек под названием «Гаджеты». …
- Теперь у вас будет новый виджет, добавленный на боковую панель Gmail.
Могу ли я связать свои обзоры на Facebook с Google?
Предполагается, что Google автоматически связывает ваш официальный Facebook и веб-сайт. Таким образом, когда пользователь ищет ваш бренд в Google, также будут отображаться отзывы с вашего Facebook.
Могу ли я перенести свою учетную запись Freefire из Facebook в Google?
Вам необходимо отправить запрос на перенос учетной записи, чтобы изменить учетную запись. Прежде чем сделать это, убедитесь, что вы знаете свой адрес электронной почты, данные учетной записи Facebook, данные своей учетной записи Google, свой Free Fire ID, свое внутриигровое имя и местоположение вашего сервера.
Как я могу восстановить свою учетную запись Facebook без Gmail?
Шаги по восстановлению учетной записи Facebook через SMS:
Введите свое имя пользователя, номер телефона или адрес электронной почты, связанный с вашей учетной записью Facebook. Теперь вы можете щелкнуть вкладку «Вход». После этого вам будет предложено ввести пароль, а затем нажать «Забыли пароль?» Ссылка на сайт.
Как я могу восстановить доступ к своей учетной записи Facebook?
Если у вас вообще нет доступа к Facebook или вы предпочитаете не выходить из другой учетной записи, откройте новый профиль браузера, например гостевой профиль и перейдите на страницу восстановления Facebook. Введите адрес электронной почты или номер телефона, который вы ранее добавили в свою учетную запись Facebook.
Как я могу восстановить доступ к моей странице в Facebook?
Если ваша учетная запись была удалена вами или кем-то с вашим паролем, восстановить ее невозможно. Вы можете создать новую учетную запись с тем же адресом электронной почты, который вы использовали раньше, но вы не сможете получить то же имя пользователя.
Как я могу активировать свою учетную запись Gmail?
Шаг № 1. Включите двухэтапную аутентификацию в Gmail
На странице «Безопасность» прокрутите вниз до раздела «Вход в Google» и выберите «Двухэтапная аутентификация». На странице двухэтапной аутентификации нажмите «НАЧАТЬ». Убедитесь, что вы меняете настройки, введя пароль на странице подтверждения (если будет предложено).
Как мне присоединиться к Facebook анонимно?
Как создать анонимный аккаунт на Facebook
- Создайте адрес электронной почты или номер телефона записывающего устройства.
- Создайте учетную запись Facebook.
- Начните добавлять друзей.
- Проверьте настройки конфиденциальности.
- Никогда не используйте свое настоящее имя на своей новой странице в Facebook.
- Не храните свои личные данные в биографии.
- Не общайтесь с другими пользователями публично.
Могу ли я иметь 2 аккаунта в Facebook?
У большинства людей есть только одна учетная запись в Facebook. Фактически, Facebook не нравится, когда у вас есть две учетные записи, он предпочитает, чтобы люди вели только одну учетную запись. … Компания на самом деле предлагает два приложения Facebook — нет, мы не говорим о приложении Messenger — которые вы можете использовать для входа в две разные учетные записи Facebook.
Вход в Facebook через Гугл — как подключить
Каждый человек может авторизоваться в фейсбуке через: электронную почту. Но многих пользователей интересует вопрос именно о входе в Facebook через гугл…..
Давайте подробнее остановимся на этом и разберемся, как можно войти в фейсбук через google?
На телефоне
Как войти в фейсбук через гугл аккаунт на телефоне?
Вариант 1 — Если вы уже зарегистрированы ФБ:
Хотим сразу сказать что вы не увидите такую кнопку ⇓
Но вместо этого — получите «другой,обычный способ» входа после того как привяжите гугл аккаунт по инструкции ниже:
- Для начала вам нужно войти в Фейсбук и перейти в «настройки конф»… а затем выбрать «настройки» (как на скриншоте ниже)
- В разделе Общие перейдите в контактная информация и нажмите добавить другой адресс
- Добавьте свою гугл почту(gmail) и нажмите сделать основным
- Вы сразу получите сообщение на почту где нужно будет подтвердить верификацию
- Готово — Аккаунт синхронизирован и вы можете входить на фейсбук с помощью гугл почты которая будет вводиться автоматически
Варинат 2 — Если вы еще не регистрировались на сайте
На мобильных устройствах регистрация через гугл аккаунт довольно проста, так как эти данные, буквально “вшиты” в систему, и вы сможете войти в любое приложение (не только фейсбук) через Google. Итак, начнём!
- Запускаем официальное приложение социальной сети и видим на экране окно, которое и позволит нам зарегистрироваться.
- Нажимаем “Создать аккаунт Facebook”. Запустится приветственное сообщение, здесь нужно вводить данные и нажимать “Далее” пока не появиться форма ввода почты(email)
- Вводим почту . Затем сразу же отобразится окно, где нужно выбрать свой гугл аккаунт для регистрации в соц. Сети.
- Выбрав профиль, пользователю следует пройти процедуру регистрации до конца, следуя всем подсказкам.
После выполнения всех шагов авторизации, вы сможете начать пользоваться своим профилем в фейсбук! Обратите внимание, что вы должны быть предварительно авторизованы в гугл-сервисах на своём телефоне (если вы скачали приложение из Google Play, то всё в порядке). Вот и всё, а что на счёт компьютерной версии?
Можно ли привязать профиль гугл?
В параметрах социальной сети не получится найти пункт, содержащий в себе настройки о привязке любого стороннего сервиса. Исключением является лишь Инстаграмм, который, как мы знаем, является дочерним сервисом фейсбука. И его подключение нужно лишь для тех, кто ведёт бизнес в социальной сети, в остальных случаях привязка инстаграма не имеет смысла.
К сожалению, многие другие популярные ресурсы (по типу, ВКонтакте, Youtube или Гугл) привязать (подключить) к Facebook не получится…
Инструкция как привязать игру к facebook
Люди ежедневно регистрируются на различных сайтах и сервисах, создавая огромное число учетных записей. Для простоты и удобства была придумана функция входа через фейсбук. При регистрации можно ввести логин и пароль от своего аккаунта в социльной сети, при этом не придется придумывать отдельные учетные данные……….
В компьютерных видео игрушках такая функция также очень удобна:⇓⇓⇓
- можно заходить с разных устройств , каждый раз будут восстановлены последние сохранения игры;
- можно делиться с друзьями своими достижениями и приглашать их;
- если игрок забыл свой пароль , его можно быстро восстановить через соцсеть;
- привязка позволяет защитить учетную запись от взломщиков .
Способы это сделать:
Существует три основных способа, как привязать игру с сохранением всех данных к фейсбуку:↓
- В момент регистрации, если такая возможность заложена разработчиками, выбрать авторизацию через фейсбук. Будет предложено ввести свой логин и пароль от соцсети.
- Если игровой аккаунт был создан давно, его можно соединить с профилем фейсбука в любой момент по желанию .
- Добавить игры из центра приложений facebook.
Синхронизация на компьютере
Разработчики большинства популярных игр побеспокоились о том, как привязать игру с уже существующим аккаунтом к фейсбуку.
Это очень просто:
Интерфейс разных сайтов может отличаться. В общем случае, при работе на компьютере, процесс выглядит так:
- Зайти в игру под своим логином и паролем.
- Перейти в личный кабинет и нажать кнопку со значком «Facebook».
- Будет выполнен переход на сайт соцсети, где будет предложено установить имя в игре, аналогичное имени профиля.
- Нажать кнопку «Подтвердить».
Готово .
→ Стоит учитывать, что многие игры не позволяют выполнять более двух привязок к разным социальным сетям .
Синхронизация на мобильном
В случае соединения мобильной игры с профилем, бывают небольшие затруднения. Для начала, если на устройстве еще нет мобильного приложения facebook, лучше его установить. Теперь при входе среди способов авторизации появится значок соцсети.
После нажатия на него, ввести свои регистрационные данные, и привязка будет выполнена. Если данный способ не помог, можно воспользоваться еще одним приемом, в зависимости от операционной системы устройства…………
Рассмотрим, как привязать игру в мобильной версии к фейсбуку на айфоне: ↓↓↓
- Войти в аккаунт фейсбук на устройстве и разрешить доступ игры к аккаунту.
- Открыть «Настройки», найти приложение фейсбук и проверить, выполнен ли вход в аккаунт.
- Отыскать нужную игру в списке приложений и проверить положение переключателя по параметру «Разрешить использовать аккаунт».
Для Android-устройства порядок действий следующий:
- В меню «Настройки» перейти во вкладку «Аккаунты».
- В списке авторизованных на устройстве записей нажать «Facebook», убедиться, что устройство подключено к рабочему профилю.
- Ниже откроется список всех приложений, с которыми связан этот профиль, в этом списке рядом с нужной игрой активировать зеленый переключатель.
То есть все однотипное !
В одну и ту же игру, синхронизированную с фейсбук, можно играть и в мобильном устройстве, и на компьютере в социальной сети.
При этом игровой прогресс: уровни, достижения, персонажи будут загружаться в самом последнем сохранении.
Если нужно восстановить прогресс в новом мобильном устройстве, нужно просто подключить игру и на текущем, и на новом устройствах к одному и тому же профилю. Если с первого раза это сделать не удалось, нужно переустановить игру в новом устройстве и заново выполнить привязку.
Привязку к фейсбук можно также выполнить для Android с аккаунтом в «Play Игры», а для iPad и iPhone – «Apple Game Center». Игры, установленные через связанные сервисы, будут автоматически синхронизированы.
В социальной сети
В фейсбук предусмотрен целый раздел «Центр приложений». Все игры, добавленные отсюда, будут по умолчанию связаны с аккаунтом:
- На главной странице профиля в левом столбце нажать кнопку «Еще».
- Выбрать раздел «Игры».
- Можно выбрать одну из предложенных игр автоматически или найти по названию через поиск.
- Нажать «Играть».
Перед добавлением можно отрегулировать доступ к различной информации и аудиторию, которой она будет доступна.
Также Facebook имеет собственный сервис – Gameroom. Здесь доступны офисные и аркадные игры, к которым можно подключаться через единый аккаунт в соцсети ⇓⇓⇓
Как ее отменить
Все игры, которые когда либо были привязаны, а также приложения и сайты, отображаются в личном профиле на сайте:⇓
- Войти в свой аккаунт, нажать на значок «Стрелка вниз» в верхней части страницы справа.
- Перейти в пункт меню «Настройки конфид…..»
- затем кликаем по кнопке «Настройки»
- На панели в левой части экрана нажать на строку «Приложения и игры».
Этот сервис позволяет узнать, как посмотреть привязанные видеоигры и приложения к фейсбуку, настроить разрешения доступа к данным для приложений, а также удалить привязки.
Для удаления всех связанных с аккаунтом приложений, необходимо на вкладке «Приложения, сайты и игры» нажать на кнопку «Редактировать», после чего откроется информационное окно, в нижнем правом углу нажать «Выключить».
Но стоит учитывать, что:⇓⇓⇓
- станет недоступна функция быстрой авторизации через фейсбук;
- те сайты, на которых был выполнен быстрый вход, могут удалить аккаунты или историю действий, а также игровой прогресс;
- в других приложениях исчезнут кнопки «Поделиться на фейсбук» и «Нравится».
Если одна какая-то игра привязана ошибочно к фейсбуку, перед тем, как отвязать, нужно ознакомиться с возможностями настроек игры в личном кабинете.
Если такой функции нет, на сайте соцсети нужно выполнить следующие действия: ⇓⇓⇓
- Нажать значок «Стрелка вниз» на главной странице своего профиля, перейти в «Настройки».
- В левом столбце выбрать пункт меню «Заблокировать», здесь доступны любые блокировки в соцсети, выбрать раздел «Блокировка приложений».
- В соответствующую строку ввести название приложения, нажать «Заблокировать».
- Аналогичным образом можно вернуть любое заблокированное приложение.
После этого приложение не сможет получать данные о профиле на фейсбук и отправлять запросы. Также можно удалить игру: ⇓⇓⇓
- Перейти в меню настроек.
- Выбрать раздел «Приложения и сайты» в левом столбце.
- Отыскать необходимую игру в списке связанных приложений и нажать «Удалить», затем подтвердить свое действие.
Теперь удаленная игра больше не будет публиковать новую информацию в Хронике профиля, старые публикации от нее можно удалить вручную.
Free Fire: Как перенести аккаунт из Facebook в Google
Garena Free Fire – одна из самых популярных игр в стиле Battle Royale с простым процессом настройки учетной записи. Есть несколько способов создания и подключения к вашей учетной записи Free Fire, например, с помощью учетной записи Facebook, Google или VK. Если по какой-либо причине вы решите изменить способ входа в учетную запись Free Fire, вы можете перенести свой аккаунт Free Fire на другую платформу. Эта статья покажет вам, как переключить учетную запись Free Fire с Facebook на Google или любую другую комбинацию переноса учетной записи.
- Как перенести аккаунт Free Fire
- Как отправить запрос Free Fire
- Описание запроса
- Добавить вложения
Как перенести аккаунт Free Fire
Чтобы изменить доступ к учетной записи Fre Fire с Facebook на Google (или с Google на Facebook), вам сначала нужно перейти на официальный сайт поддержки Free Fire. Этот веб-сайт предназначен для помощи в решении вопросов поддержки Garena Free Fire, таких как проблемы с игрой (Game Concerns), технические проблемы (Technical Issues) и проблемы с оплатой (Payment Issues). Изменение доступа к Вашей учетной записи Free Fire подпадает под действие раздела игр (Game Concerns).
Выбрав Проблемы с игрой (Game Concerns), перейдите в раздел Игра и общие вопросы (Game and General Inquiry) и выберите Просмотреть все 22 статьи (See all 22 articles). Прокрутите вниз до Как отправить запрос (How to submit a request).
Здесь объясняется, как отправить запрос. Чтобы изменить учетную запись, вам необходимо отправить запрос на перенос учетной записи (request to change accounts). Прежде чем сделать это, убедитесь, что вы помните свой адрес электронной почты, данные учетной записи Facebook, данные своей учетной записи Google, свой Free Fire ID, свое внутриигровое имя и местоположение вашего сервера.
Как отправить запрос Free Fire
Записав все эти детали, вам нужно будет нажать кнопку Отправить запрос (Submit request) в правом верхнем углу экрана.
Вы будете перенаправлены на страницу отправки запроса, где вам нужно будет выбрать свое местоположение из раскрывающегося меню.
Теперь начните заполнять форму, указав необходимую информацию (адрес электронной почты, идентификатор игрока Free Fire и внутриигровое имя).
После того, как вы это сделаете, вам нужно будет выбрать соответствующий тип запроса для вашей ситуации. Ранее, когда вы выбирали опцию Проблемы с игрой (Game Concerns), следующее раскрывающееся меню: выбор типа проблемы (select the type of problem) позволяло вам выбрать вариант, например, потеря учетной записи, однако теперь это невозможно. Вместо этого вы должны будете выбрать раздел Технические вопросы (Technical Issue).
Описание запроса
Это важный раздел, в котором вам нужно будет добавить описание вашей проблемы, содержащее как можно больше информации, данные вашей учетной записи, учетную запись Facebook (или Google), с которой вы сейчас подключаетесь, и Google ( или Facebook), которую вы хотите использовать в дальнейшем. Вот черновик, который может пригодиться в качестве примера для заполнения описания:
Здравствуйте, моя учетная запись Free Fire в настоящее время связана со следующей учетной записью Facebook: (введите данные Facebook), и я хотел(а) бы перенести эту учетную запись в следующую учетную запись Google: (введите данные Google).
Завершите описание, добавив любую соответствующую информацию, даже если вы уже указали ее ранее в форме: адрес электронной почты, идентификатор игрока Free Fire, внутриигровое имя и расположение сервера.
Добавить вложения
Если вы хотите добавить какие-либо дополнительные вложения, такие как фотография вашего профиля или другие данные профиля, вы можете добавить их как вложение (attachment).
Заполнив форму, нажмите Отправить запрос (send request). В течение нескольких дней вы должны будете получить электронное письмо от службы поддержки Garena Free Fire, в котором будет указано, что перенос вашей учетной записи был успешным. Если у Free Fire есть какие-либо проблемы с переносом учетной записи (подозрения, что учетная запись была взломана), они могут принять решение не принимать передачу. Кроме того, если вы запрашиваете перенос учетной записи второй раз, они, скорее всего, не позволят вам сделать это.
Авторизация через Facebook, Google, Twitter и Github используя Omniauth
Озадачившись однажды вопросом добавление регистрации/входа на сайт через сторонние сервисы начал искать, что уже есть готового, либо описания как это уже кто-то делал. Готовые сервисы были откину сразу, остался вариант реализовывать самому. И тут Google навел на подробную инструкцию. Ознакомившись и вдохновленный тем решением сделал свою модификацию, все работало, был просто счастлив.
Спустя некоторое время решил посмотреть что-же еще есть на том ресурсе интересного, но к своему разочарованию сайт был не доступен. Слава кэшу Яндекса, откуда была выдернута копия того материала. И чтобы он не пропал безвозвратно, решил сделать его перевод и выложить здесь.
И так приступим.
Эта глава будет посвящена известному гему Omniauth. Omniauth это новая система идентификации поверх Rack для мультипровайдерной внешней идентификации. Он будет использован для связи CommunityGuides (прим: в настоящий момент ресурс не доступен и похоже уже не вернется) с Facebook, Google, Twitter и Github. Данная глава покажет как интегрировать все это с существующей идентификацией через Devise.
Добавляем вход через Facebook
Omniauth — система идентификации поверх Rack для мультипровайдерной внешней идентификации.
Для начала мы зарегистрируем наше приложение на Facebook developers.facebook.com/setup. Укажите имя (будет отображаться пользователям) и URL (например www.communityguides.eu). Facebook допускает перенаправление только на зарегистрированный сайт, для разработки вам нужно указать другой URL (например http://localhost:3000/). Не указывайте в URL localhost либо 127.0.0.1 это приведет к ошибке “invalid redirect_uri”, что довольно распространено. Добавьте гем ‘omniauth’ к вашему проекту выполните bundle install, создайте инициализатор с вашим APP_ID/APP_SECRET и перезапустите сервер.
config/initializers/omniauth.rb
Теперь создадим новый контроллер и модель, которая расширит нашего пользователя различными сервисами и установит связь между ними.
app/models/user.rb
app/models/service.rb
config/routes.rb
Мы определили новые маршруты для сервисов (пока только index и create) и добавили так называемый маршрут для обратного вызова. Что это? Мы делаем запрос на аутентификацию пользователя через http://localhost:3000/auth/facebook. Запрос направляется на Facabook и далее Facebook перенаправляет запрос на вашу страницу используя путь /auth/facebook/callback. Мы сопоставили данный путь нашему контроллеру Services, в частности методу create. Сейчас данный метод возвращает лишь полученный хэш.
app/controllers/services_controller.rb
Давайте проверим это. Перейдем по адресу http://localhost:3000/auth/facebook после чего попадем на запрос на доступ к вашим данным на Facebook. Принимаем предложение и возвращаемся в наше приложение, которое отобразит полученные данные (смотрите исходный код страницы для нормального форматирования).
Исходный код страницы
Нас интересуют только поля id, provider name и email, расположенные в extra: user_hash. Для проверки заменим create метод следующим кодом:
app/controllers/services_controller.rb
Отлично, мы сумели аутентифицировать пользователя через Facebook! Еще осталось много чего сделать, мы интегрируем это в нашу схему с Devise. Есть несколько моментов, на которые нужно обратить внимание:
- Пользователь входит используя Facebook: Facebook предоставляет почту пользователя. Проверим есть ли уже такой, если нет то создаем нового пользователя с предоставленным адресом и автоматически подтверждаем. Создаем новую запись в модели Serviсe для Facebook и присваиваем созданному пользователю.
- Пользователь регистрируется или входит через Facebook первый раз, но уже имеет локального пользователя: снова получаем адрес почты от Facebook и смотрим в нашу базу. Если мы находим такой адрес, то создаем новую записть для Facebook и связываем с найденным пользователем.
- Пользователь повторно входит через Facebook: смотрим в базу и выполняем вход для него.
Omniauth предоставляет возможность добавить больше сервисов, как мы и сделаем. Наша аутентификация завязана на почтовый адрес, поэтому только провайдеры предоставляющие его могут быть использованы. Например Github возвращает адрес только в том случаем, если пользователь указал публичный адрес. Twitter напротив никогда не показывает почтовый адрес Тем не менее, Github аккаунт с адресом может быть использован как и Fb для входа/регистрации, а Github без адреса или Twitter аккаунты могут быть добавлены к существующему локальному пользователю, либо созданного через другого провайдера.
Каждый провайдер возвращает хэш содержащий различные параметры. К сожалению, это никак не стандартизовано и каждый может давать различные имена одинакомым атрибутам. Это значит, что мы должны различать сервисы в методе create. Так же заметим, что есть только один метод для обратного вызова. Поэтому что мы должны сделать с полученными данными (войти или зарегистрировать) зависит только от нас. Изменим наш маршрут снова для всех сервисов, добавим в него параметр, в который будет помещаться имя используемого: params[:service].
config/routes.rb
Далее идем на страницы для Github и Twitter. Регистрируем снова на localhost (для Twitter-а вместо localhost нужно использовать 127.0.0.1). Получим новые маршруты http://localhost:3000/auth/github/callback/ и http://127.0.0.1:3000/auth/twitter/callback. После чего изменим инициализатор.
Созданный метод будет проверять наличие параметра из пути и Omniauth хэша. Далее, в зависимости от сервиса аутентификации, необходимые значение из хеша переносятся в наши переменные. По крайней мере, сервис провайдер и идентификатор пользователя для него должны быть определены, иначе остановка.
Часть первая: пользователь еще не вошел: Сначала проверим, есть ли пара провайдер-идентификатор в нашей модели Service, которая подразумевает, что данная пара ассоциирована с пользователем и может быть использована для его входа. Если это так, то делаем вход. Если нет, то проверяем существование почтового адреса. Используя этот адрес, мы можем найти в имеющейся модели пользователя если он уже был с ним зарегистрирован. Когда такой пользователь найден, этот сервис будет добавлен ему и в будущем он сможет использовать его для входа. В случае если это новый почтовый адрес, то вместо этого создаем нового пользователя, подтверждаем его и добавляем данный сервис аутентификации ему.
Часть вторая: если пользователь уже вошел: Мы просто добавляем данный сервис к его аккаунту если не был добавлен ранее.
Посмотрим внимательно ниже на метод Create. Он содержит весь необходимый код для обработки различных случаев описанных выше и предоставляет идентификацию для Facebook, Github и Twitter. Заметьте, что только 4 строки кода нужны для добавления нового провайдера. Еще нет интерфейса для этого, но можете проверить перейдя по ссылкам сами:
- Facebook: http://localhost:3000/auth/facebook
- Github: http://localhost:3000/auth/github
- Twitter: http://localhost:3000/auth/twitter
- Index отображает все сервисы привязанные к текущему пользователю: http://localhost:3000/services (мы создадим эти страницы позже вместе со страницами входа и регистрации)
- метод Delete удаляет сервис.
Наш код полностью работоспособен и прямо сейчас можно использовать один локальный аккаунт и три сервиса для входа или регистрации. Несмотря на то, что вход и регистрация всегда проходят по одному пути /auth/service и обратный вызов всегда идет на /auth/service/callback.
Наш пример прекрасно работает, но есть недостаток, который может привести к нежелательным аккаунтам: возьмем пользователя с локальным аккаунтом (почта: one@user.com) и аккаунтом в Facebook (почта: two@user.com) который уже привязан к локальному. Никаких проблем, адреса не совпадают. Если пользователь имеет Google аккаунт с почтой: three@user.com, то он может быть привязан без проблем пока сессия активна. С другой стороны, предположим, что пользователь никогда не связывал Google аккаунт и он еще не вошел: если он нажмет на “войти через Google” наш create метод выполнит поиск для three@user.com, ничего не найдет и создаст нового пользователя.
Пришло время добавить пару вьюшек, начнем с входа и регистрации:
Вы можете скачать изображения Github:Authbuttons. Сейчас наши пользователи могут входить или регистрироваться через удобный интерфейс. В дополнение, нам нужна страница с настройками, где пользователи смогут управлять аккаунтами связанными с локальным.
Добавляем Google
Наконец давайте добавим Google к списку наших сервис провайдеров. Google (и OpenID в частности) требуют постоянного хранилища. Вы можете использовать ActiveRecord или файловую систему как показано ниже. Если вы хотите разворачивать на Heroku, помните, что у вас нету доступа на запись в /tmp. Хотя, как отмечено в Heroku Docs, вы можете писать в ./tmp.
Две строчки конфигураций и четыре для присвоения значений из хеша — это все что нужно для добавления авторизации через Google в вашем коде. Это ли не великолепно? Достаточно Omniauth на сегодня, но если вы хотите использовать его в одном из ваших проектов, вы можете найти много ресурсов в Omniauth Wiki, также Райна Бэйтс сделал великолепные скринкасты по нему.
Вновь настроим Devise
Существует небольшой недостаток в профиле наших пользователей. Пльзователю нужно вводить текущий пароль для смены настроек. Если он зарегистрирован через один из сервисов, то он не имеет пароля, помните, мы устанавливали его в случайную строку. В Devise Wiki есть статья с тем как полностью убрать пароль. Но у себя мы хотим оставить пароль только для локальных пользователей. Для остальных пользователей разрешим менять свой профить без использования пароля. В дополнение, они смогут установить локальный пароль если захотят. Это достигается путем модификации метода update для контроллера регистрации:
Код использует дополнительное поле в пользовательской модели, вы можете вернуть и добавить его в миграцию (t.boolean :haslocalpw, :null => false, :default => true), измените модель для разрешения массового присваивания для этого поля, измените вьюшку чтобы скрыть поле для ввода текущего пароля если haslocalpw ложно и изменим create метод нашего service контроллера для установки этого поля при создании пользователя:
app/controllers/services_controller.rb
PS: это первый мой большой перевод, поэтому просьба ошибки/кривые формулировки в личку. Большое спасибо.