2010-05-04 3 views
8

У меня есть таблица «пользователи», и я хочу, чтобы мои посетители регистрировались с их учетной записью OpenID. Для этого я использую OpenId Component for Cakephp, и он отлично работает (когда я вхожу в систему с URL-адресом Google, я получаю уведомление об успешной аутентификации!).Cakephp с OpenID и аутентификацией пользователя

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

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

ответ

7

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

Вместо этого вы можете использовать identity_url, чтобы выяснить, является ли он новым пользователем. Если это так, вы можете создать запись в своей таблице «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, то это означает, что этот пользователь прошел проверку подлинности. Как вы используете эту информацию в своем приложении, зависит от вас.

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

+0

спасибо, что мне действительно помогло, и теперь я также понимаю, как (где) проверить подлинность пользователя. –

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