ユーザーにログインするためのカスタムモデルを作成しました。私はデータベースとしてsqliteを使用しています。 "users"テーブルには "id"カラムがあり、私は雄弁を使用していないので、auth.configファイルでドライバを "database"と "users"として変更しました。Laravelセッションが直ちに終了する(Laravel 5.5)
ユーザーがインデックスに登録されているかどうかを確認します。ログインしていない場合は、ログインページにリダイレクトします。ログインフォームが送信されると(ajax呼び出し)、ユーザーが間違ったユーザー名またはパスワードを入力すると、間違った資格情報を入力したことを示すモーダルでエラーメッセージが表示されます。ユーザー名とパスワードがtrueの場合、インデックスページにリダイレクトされます。しかし、ユーザはログインしたとみなされないので、再びログインページにリダイレクトされます。また、リダイレクトせずにユーザーのIDをエコーしようとしましたが問題なく表示されました。しかし、インデックスページにアクセスした後、再度ログインページにリダイレクトされます。
次のコードを呼び出すとセッションを追加して表示しようとしました。
session()->put('foo', 'bar');
echo session()->get('foo');
"bar"がページにエコー表示されます。しかし、別のページにセッションをエコーした場合(既にセッションが追加されていないため、新しいセッションを作成する必要はありません)、 "bar"はページにエコーされません。
また、「storage/framework/sessions」フォルダにファイルが保存されていないことにも注意してください。
セッションタイプはファイルであり、有効期間は720です。「cookie」と「database」も試みました。同じ問題が「Cookie」で発生しましたが、データベースドライバを使用して「データベースドライバを使用できません」という例外が発生しました(必要なテーブルを正常に移行しました)。
また、ウェブサイトはlocalhost(Windows 10)にあります。だから、私はフォルダのアクセス許可が問題になるとは思わない。また、私は別のLaravel(古いバージョン - それは5.4でなければならないと思います)を同じPCに持っていて、問題なく動作しています。どちらもPHP 7とnginxサーバーを使用しています。
答えをありがとうが、私はすでに私の質問でこの予防措置について言及しています。 –