私はlaravelフレームワークを使用して 'remember me'ログインを実装しようとしています。ユーザーが「remember me」ボックスをチェックすると、laravelはセッションデータを1ヶ月間保持します。ユーザーがチェックを外すと、ユーザーがブラウザを閉じるまでセッションを維持したい。2つの異なる生涯セッションを持つLaravel
「私を覚えている」がチェックされているときにセッションを制御する方法を知っています。私は以下のように設定/ session.phpでセッションを構成し:
'lifetime' => 43200,
'expire_on_close' => false,
そして私は、グローバルセッションヘルパー
session(['accessToken' => SOME_ACCESS_TOKEN]);
Session::flush();
などとのセッションを使用しています。
しかし、私が「私を覚えている」とチェックしていない状態でログインするときの仕組みはわかりません。私は設定を制御する方法を見つけようとしましたが、ユーザの入力に基づいて、オンザフライで、失敗しました。 1つのラーヴェル・フレームワーク内で2つの異なるセッション・ライフタイム構成をどのように保つことができるか教えてください。または、私が間違った方法で「私を覚えている」ことを試みているなら、私を案内してください。
基本的には、上記のように、私は「私を覚えている」という月にセッションを続け、「私を覚えていない」ブラウザを閉じるまでセッションを維持したいと思います。
ありがとうございました。
を。しかし、Authを「ユーザー」とは別のテーブルにどのように向けるべきですか?私の場合、USERというテーブル(すべて大文字)があります。私はconfig/auth.phpを調べましたが、それは私が探しているものではないようです...また、Auth :: viaRemember()を使用することはできますか?ユーザーがブラウザを閉じない?ありがとう!! –
私はちょっと掘り下げて、config/auth.phpが実際に私が必要としていたものを見つけました。私は 'プロバイダー'を 'データベース'と 'ユーザー'テーブルを指すように変更しました。しかし、私は 'remember_token'列をVARCHAR(100)型で作成しましたが、 'ErrorException inGenericUser.php 66行目は未定義のインデックス:remember_token'というエラーが表示されます。私はこれをどのように修正できるか知っていますか? –
viaRememberは、ユーザーがremember-me Cookieで認証されたかどうかを示します。試しに手動でユーザーを認証すると、viaRememberはあなたを偽にします。 –