Cakephp с OpenID и аутентификацией пользователя

У меня есть таблица "пользователи", и я хочу позволить моим посетителям войти в систему с их openID Account. Для этого я использую Компонент OpenId для Cakephp, и он хорошо работает (Когда я вхожу в систему с Google URL, я получаю "успешно аутентифицируемый!" уведомление).

Но теперь я отчасти застреваю, потому что я не знаю, как продолжить оттуда.

  • Я должен создать Пользовательскую Запись для каждого пользователя, который имеет новую запись в "oid_associations" таблице (я сохраняю все взаимодействие OpenId в mysql базе данных)?
  • Я должен аутентифицировать Пользователя после входа в систему (или OpenID-компонент делает это автоматически?).
  • Я полностью неправильно понимаю понятие?

8
задан Christian Strang 4 May 2010 в 22:23
поделиться

1 ответ

Нет, вам не нужно обращаться к таблице "oid_associations", это таблица, которая используется только библиотекой OpenID.

Вместо этого вы можете использовать identity_url, чтобы выяснить, новый ли это пользователь. Если это так, вы можете создать запись в таблице "users". Например (при условии, что в таблице "users" есть столбец "openid"):

$response = $this->Openid->getResponse($returnTo);

if ($response->status == Auth_OpenID_SUCCESS) {
    $user = $this->User->findByOpenid($response->identity_url);
    if ($user) {
        // existing user
    } else {
        // new user -> create user entry in the database
    }
}

Я не уверен, что правильно понял ваш второй вопрос. Если кто-то входит в систему с OpenID и вы получаете ответ Auth_OpenID_SUCESS, то это означает, что этот пользователь успешно прошел аутентификацию. Как вы будете использовать эту информацию в своем приложении, зависит от вас.

Надеюсь, это ответило на ваши вопросы.

7
ответ дан 5 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: