Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2011, 18:53   #1
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,604
По умолчанию Авторизация через FaceBook

Не пойму принцип, у меня есть таблица юзеров на сайте, авторизация которых происходит по логину\паролю.
Допустим авторизировались на феисбуке, я получил от фейсбука "id", "name", "first_name", "last_name", дальше что с ними делать? Откуда узнать к какому юзеру из моей таблицы они относятся?
Gorychev вне форума Ответить с цитированием
Старый 31.10.2011, 19:49   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Gorychev Посмотреть сообщение
Допустим авторизировались на феисбуке, я получил от фейсбука "id", "name", "first_name", "last_name", дальше что с ними делать? Откуда узнать к какому юзеру из моей таблицы они относятся?
Там немного заморочено получается.
Нужно организовать связь между юзерами и средствами социальной авторизации.
Т.е. либо прямо в таблицу юзеров добавляем поля "facebook_id", "twitter_id", "vk_id" (ну и остальные социалки, которые планируете использовать для авторизации) - этот вариант предпочтительнее.
Либо делаем отдельную таблицу связей, типа "users_socials" - где фиксируем social_id, user_id, social_type(это у нас facebook, twitter, vk, etc).

Ну а далее - если юзер проходит социальную авторизацию, то мы ищем такой социальный ID в наших таблицах.
Если такой есть - фиксируем вход этого пользователя.

Если такого нет - создаем нового пользователя, который пока имеет возможность авторизации только через один социальный сервис.
А уже в профайле этому юзеру предоставляем возможность указать свои расширенные данные(если они необходимы), и выбрать другие способы авторизации(через другие социалки, или через стандартные логин/пароль).

То же самое и с уже зарегистрированными пользователями - в профайле им предлагается выбрать различные социальные сервисы для авторизации.
Юзер выбирает сервис, пробуем осуществить авторизацию через него - если проходит, то "привязываем" данного юзера к выбранной социалке.
Andkorol вне форума Ответить с цитированием
Старый 31.10.2011, 21:00   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,604
По умолчанию

Cпасибо, Andkorol теперь все ясно. Мне нужна только авторизация, другие данные хранить не нужно, по этому добавлю поле facebook_id и не буду гемороиться.
Gorychev вне форума Ответить с цитированием
Старый 01.11.2011, 16:19   #4
biohazardo
Пользователь
 
Аватар для biohazardo
 
Регистрация: 27.09.2010
Сообщений: 24
По умолчанию

У меня так и сделано. Таблица users хранит по пользователю все, а таблица facebook, vkontakte хранит только ссылку на id из users. При логине выбираются все данные оттуда. Если надо зайти через простую форму входа - тут таблица accounts. Я думаю так проще всего и менее мусорно. И легко прикреплять несколько сервисов к 1му аккаунту.
biohazardo вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
авторизация на facebook serj1985 Работа с сетью в Delphi 2 13.08.2011 11:35
вход на сайт через facebook-аккаунт katena88 HTML и CSS 1 02.06.2011 10:39
Как сделать авторизацию через Facebook? Дмитрий Макаров PHP 1 30.05.2011 11:00
Авторизация через Idhttp xakkkkker Работа с сетью в Delphi 1 08.02.2009 17:10

Реклама для незарегистрированных, регистрация на форуме