6

登録時に 5 ページで SSL を使用しています

https://www.example.com/step1
https://www.example.com/step2
https://www.example.com/step3 - 認証コンポーネント ログイン
https://www.example.com/step4
https: //www.example.com/step5

ステップ 3 の後、認証コンポーネントによってユーザーを自動的にログインさせる認証コンポーネントを使用して、ユーザーのセッションを作成しています。ただし、ステップ 5 の後、 http://www.example.com/welcomeにリダイレクトされます。

SSL コンポーネントの強制されない方法を使用してHTTPSHTTPに変更しています。すべて正常に動作していますが、問題は、手順 5 (HTTPS) からウェルカム ページに到達すると、認証コンポーネント セッションが期限切れになることです。デバッグしようとしましたが、解決策が見つかりませんでした。HTTPS がないと、すべてのステップとセッションが正常に機能することに注意してください。

4

2 に答える 2

3

AppController クラスのコード:

function beforeFilter() {
parent::beforeFilter();
$this->_setupSecurity();}

function _setupSecurity() {
$this->Security->blackHoleCallback = '_badRequest';
if(Configure::read('forceSSL')) {
    $this->Security->requireSecure('*');    }

}

/** * メインの SecurityComponent コールバック。* 不足している SSL の問題と一般的な不正な要求の両方を処理します。*/

function _badRequest() {
if(Configure::read('forceSSL') && !$this->RequestHandler->isSSL()) {
    $this->_forceSSL();
} else {
    $this->cakeError('error400');
}
exit;}

/** * 同じページにリダイレクトしますが、https プロトコルを使用して終了します。*/

function _forceSSL() {
$this->redirect('https://' . env('SERVER_NAME') . $this->here);
exit;

}

このリンクをたどってください:あなたの解決策を得るかもしれません..

https://stackoverflow.com/a/4473178/983624

于 2012-08-22T07:17:53.777 に答える
3

Cakephp 2.0 を使用している場合は、次のフォルダーに移動します。

ライブラリ/ケーキ/モデル/データソース/

CakeSession.php ファイルを開き、次の行を検索します。

if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS'))
{
        $sessionConfig['ini']['session.cookie_secure'] = 1; // Just comment this line and try it will works
}
于 2012-08-22T07:19:29.080 に答える