1

DrupalサイトとZendアプリケーションがあります。主なものは、ユーザーが保存されているDrupalサイトとすべてです。

ユーザーがDrupalにログインしたときに、Zendアプリに自動的にログインするようにしたいと思います。問題は、DrupalがセッションCookieをSESS*ランダム*な(編集:ランダムではなく、プロトコルとドメインに基づく)文字列に変更することです。

このCookieをセッション識別子として使用し、ユーザーを自動的にログに記録するようにZendに指示する方法はありますか?

4

1 に答える 1

1

独自の認証アダプタを作成する必要があります。

class YourApp_Auth_Adapter_DrupalBridge implements Zend_Auth_Adapter_Interface
{
    /**
     * @return Zend_Auth_Result
     */
    public function authenticate()
    {
        // Check if the Drupal session is set by reading the cookie.
        // ...

        // Read the current user's login into $username.
        // ...

        // Create the authentication result object.

        // Failure
        if (null === $username) {
            return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, null);
        }

        // Success
        return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $username);
    }
}

次に、認証を処理します。

$adapter = new YourApp_Auth_Adapter_DrupalBridge();
$result = Zend_Auth::getInstance()->authenticate($adapter);

if ($result->isValid()) {
    // User is logged in
}
于 2012-08-07T15:49:06.673 に答える