TL; DR remember_meトークンを生成する独自の方法を使用するにはどうすればよいですか?Laravelのデフォルトのremember_meトークンが長すぎます
フレームワークなしで書かれた古いサイトがあり、Laravel(5.4.23)で書き直すという仕事をしています。 DBはアンタッチ可能ではなく、リファクタリングすることはできず、いかなる方法でも変更することはできません。
私はLaravel認証プロセスを、古いDBを反映する別のUserモデルを使用してカスタマイズすることができました。しかし、 "Remember me"機能に関しては、トークンの長さに問題があります。
古いサイトではすでに「Remember me」機能が使用されていますが、DBフィールドはBINARY(25)として定義されています。 SessionGuardクラスによって生成されるトークンは60文字です。
私の最初の試みは、トークンをDBに書き込む前にそのトークンを短くし、DBから読み込んだ後に再びトークンを展開する方法を見つけようとしました。私はそのような方法を見つけることができませんでした(そして私はそのような方法があるかどうか確信していません)。
次に、私自身のガードを書き、cycleRememberToken(トークンが生成される場所)をオーバーライドしました。セッションガードクラスは実際にいくつかの場所でインスタンス化されているため(構成に基づいてクラスをインスタンス化するのではなく)、私はそれを動作させることができませんでした。
だから私は立ち往生しています。私は短縮トークンを必要とし、それを得る方法を知らない。