За последние 24 часа нас посетили 22660 программистов и 1115 роботов. Сейчас ищут 622 программиста ...

[обсуждение] универсальный Auth

Тема в разделе "Решения, алгоритмы", создана пользователем Koc, 19 июн 2010.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    В общем в очередной раз хочу сделать универсальную либу регистраций/логинов/логаутов и тд.

    Хочу, значит, провести декомпозицию этой задачи, выделить функциональные блоки в адаптеры. Пока еще слабо представляю как оно будет.

    1) StorageAdapters - информацию о пользователях нужно где-то хранить (MySQL/Redis?).
    2) AuthAdapters - тут какая-то магия, которая будет взаимодействовать с login/mail/ID+pass или же с openID или facebook или VK
    3) SessionAdapters - это кеширующая прослойка между openID и прочими, что бы не спрашивать каждый раз чужой сервер валидный ли токен или нет.


    В общем предлагаю обсудить пока только вход/выход, не регистрацию, где будут еще is_active, смены/восстановления пароля и тд.


    Приветствуются советы, UML-диаграммы и прочее.
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    О, это тема. Нужно выделить класы для работы с разными сервисами в отдельные плагины, и некоторый свой автолоад сделать для них.
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я в курсе

    флоппик
    мне не коннектор нужен) Как именно разбить по адаптерам?
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    [vs]
    Код (Text):
    1. str_replace('_', '/', $className)
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    нэхай пользователь скармливает ему некий объект, соответствующий некоторому интерфейсу, с именем таблицы пользователей, полями, ресуром (объектом) соединения с БД (или другим харнилищем).
    В таблице пользователей хранить токен. Twitter вооще выдает бессрочный токен.
     
  7. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    когда к нам приходит человек с фейсбука, который до этого у нас не был, то мы его записываем в StorageAdapters? Или это можно вынести в настрйки?
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    При первой авторизации посредством какого-нибудь сервиса, можно сразу и регестрировать.
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    сессии и авторизация - разные по сути. не фиг их совмещать .
     
  10. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    это не сессия в прямом смысле. Запихиваю в куку userId:md5(passHash . SERVER_SALT) - вот тебе и как бы сессия