0

過去数時間、ログイン画面に「remember me」オプションを実装しようとしましたが、成功しませんでした。誰か助けてくれませんか?=D

私はapache2/mysql 5.5/ubuntu 12.10サーバーでcakephp 2.3.9を使用しています。"login()" メソッドで、ユーザー コントローラー内に次のコードを追加しました。

if ($this->Auth->login()) {
 if($this->request->data('Usuario.remember')==="1"){
  CakeSession::write('Session.timeout', '144000');//100 dias
 }
 return $this->redirect($this->Auth->redirect());
}

その特定のユーザー セッションが通常より大きくなることを期待していましたが、すべてのユーザーに適用されたようです。Cakephp のデフォルトの認証コンポーネントを使用しています。誰かが私が間違っていることと何をすべきかを教えてもらえますか? 前もって感謝します ;]

4

1 に答える 1

2

あなたがそれに近づいている方法でこれを行うことを私は知りません。PHP セッション タイムアウトの長さは、session.gc_maxlifetime の下の PHP.ini で定義されたサーバー全体の設定です。

私が個人的にこれにアプローチする方法は、使用しているセッションハンドラーを上書きし、PHPSESSID Cookie を使用するのではなく、Cookie の有効期限を制御できる独自の Cookie を作成することです。これにより、上書きされたセッション ハンドラーが取得してユーザーの認証に使用できるカスタム セッション ID が保持される可能性があります。

CakePHP は私がよく知っているものではないので、統合に関してあまり多くのアドバイスをすることはできません。

于 2013-09-24T18:50:13.623 に答える