За последние 24 часа нас посетили 16733 программиста и 1597 роботов. Сейчас ищут 1314 программистов ...

Аутентификация на сайте с поддоменами

Тема в разделе "Прочие вопросы по PHP", создана пользователем Openru, 29 фев 2008.

  1. Openru

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

    С нами с:
    6 ноя 2007
    Сообщения:
    12
    Симпатии:
    0
    Я на своем сайте использую поддомены и возникла проблема при аутентификации пользователей.
    Сессии и куки работают только на один домен. Как мне решить эту проблему?
     
  2. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1.  
    2. Предпоследним параметром куки можно указывать домен:
    3. <?
    4. setcookie("supercookie","yes","","",".mysite.com");
    5.  
     
  3. md5

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

    С нами с:
    29 янв 2007
    Сообщения:
    250
    Симпатии:
    0
    делать центральный авторизационный поддомен типа passport.site.ru на него кидать все авторизационные формы с других поддоменов и ставить куку на .site.ru
     
  4. dAllonE

    dAllonE Guest

  5. Openru

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

    С нами с:
    6 ноя 2007
    Сообщения:
    12
    Симпатии:
    0
    Спасибо. Я немного позже тоже дошел до ванианта [vs]. Просто нужно было учебник внимательнее читать.
    А что нужно сохранять в куке? Логин и пароль или пароль ненужно? т.е. по какому принципу лучше определять что это тот же пользователь?
     
  6. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Openru
    Сохраняй куки с именем пользователя и md5-хэшем пароля. При загрузки страницы проверяй, соотвествует ли имя пользователя хэшу пароля в БД.
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Не надо хэш пароля хранить в куках. Лучше
    PHP:
    1. md5($ip . $user_agent . $password)
     
  8. Openru

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

    С нами с:
    6 ноя 2007
    Сообщения:
    12
    Симпатии:
    0
    А с чем его сравнивать потом?
     
  9. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $user['password']);
    типа такого.
     
  10. Clone

    Clone Guest

    IP я бы заменил на логин юзера. И добавил бы что-нить из внутренних серверных констант для соли.
     
  11. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Насколько я понял, тут фишка в том, что если чья-то кука попадет в чужие руки, она будет уже не действительна, т.к. у другой машины скорее всего будет другой ип
     
  12. Openru

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

    С нами с:
    6 ноя 2007
    Сообщения:
    12
    Симпатии:
    0
    Но и IP у пользователя может поменяться, но с использованием IP надежно.
    Проверку можно так сделать
    PHP:
    1.  
    2. <? if($_COOKIE['cookie']== md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $password)) {
    3. echo "Привет, USER!";
    4. }
    5. ?>
    6.