2009-08-21 2 views
1

У меня есть сайт example.com.com, где пользователи могут зарегистрироваться и войти или просто войти с openid. Записанные пользователи могут создавать свои собственные сайты с подобластями, такими как mysite.example.com. Каждый пользователь может иметь несколько сайтов. Каждый сайт - приложение cakephp. Каждое приложение для пирожных имеет свой собственный ACL.Как развернуть авторизацию между несколькими приложениями cakephp?

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

ответ

1

Два основных требования здесь:

  1. стороне клиента печенья должен быть действительным для всех приложений

    Проверить куки, установленный CakePHP на стороне клиента (FireCookie хорош для этого). Часть файла cookieнеобходимо прочитать .example.com (не www.example.com), чтобы он мог применяться к поддоменам. Это может работать в bootstrap.php:

    ini_set('session.cookie_domain', '.example.com'); 
    
  2. стороне сервера хранения сессий должна быть доступна для всех приложений

    В core.php для каждого приложения, установить общую память сеанса. Возможные варианты:

    • php: Это будет использовать каталог хранения сессий PHP, который должен быть одинаковым для всех приложений.
    • database: Если все приложения используют одну и ту же базу данных, это может быть вариант.
    • cake: Для этого вам необходимо будет определить общий каталог /tmp для каждого приложения.
+0

Вот мои мысли. ini_set ('session.cookie_domain', '.example.com') - для этого я думаю, вам нужно только настроить: write ('Security.level', 'low') ;. Что касается 2. (на стороне сервера), включение общего хранилища сеансов для всех приложений означает, что вам нужно будет контролировать доступ к приложению на уровне приложения, и это может повредить ваш ACL. Я понял, что лучший способ - хранить сеанс в базе данных на основе каждого приложения и распространять его через систему на другие приложения, принадлежащие данному пользователю. – 2009-08-23 18:09:45

+0

Можно ли использовать общий сеанс для 1.3 и 2.x? –

+0

Должно быть возможно .. 'Config/Schema/sessions.php' выглядит одинаково в обеих версиях. – deizel

Смежные вопросы