laravel 5.2で\ Auth :: logout()を実行すると、refreshRememberToken
呼び出しがトークンを再生成しようとします(データベースに保存されます)。Laravel 5.2でrefreshRememberTokenを無効にします。
質問:どうすればこの機能を無効にできますか?
私は、この機能を望んでいないが
laravel 5.2で\ Auth :: logout()を実行すると、refreshRememberToken
呼び出しがトークンを再生成しようとします(データベースに保存されます)。Laravel 5.2でrefreshRememberTokenを無効にします。
質問:どうすればこの機能を無効にできますか?
私は、この機能を望んでいないが
これを行うことのない、設定方法がないように見えます(それが列&などの不足により、今エラーの多くを生成します)。
をあなたはガードのログアウト方法&オーバーライドを拡張することができますし、refreshRememberTokenメソッドを呼び出します(または&オーバーライドrefreshRememberToken方法を拡張し、ちょうどからtrueを返しませんが(私は、コードに目をキャスト。、わかりません)あなたがガードを延長したくない場合は、Illuminate\Contracts\Auth\UserProvider
を実装するカスタマイズされたユーザープロバイダを作成することもできます。あなたはIlluminate\Contracts\Auth\UserProvider
2つのメソッドのシグネチャがありますが、バイパスする必要が実装しなければならないインタフェースで
:
/**
* Retrieve a user by their unique identifier and "remember me" token.
*
* @param mixed $identifier
* @param string $token
* @return \Illuminate\Contracts\Auth\Authenticatable|null
*/
public function retrieveByToken($identifier, $token);
/**
* Update the "remember me" token for the given user in storage.
*
* @param \Illuminate\Contracts\Auth\Authenticatable $user
* @param string $token
* @return void
*/
public function updateRememberToken(Authenticatable $user, $token);
をバイパスした後、私は次のように使用しますが、認証ドライバやガードを拡張に関する詳細情報が必要な場合
'providers' => [
'users' => [
'driver' => 'customimplementation',
],
],
、今の https://laravel.com/docs/5.2/authentication#adding-custom-guards https://laravel.com/docs/5.2/authentication#adding-custom-user-providers
に従ってください:あなたは、AUTH Auth::provider('customimplementation')
を拡張して、認証設定のdriver
キーを変更しています汚いトリック:私は、このメソッドを追加
User
モデルに
function setRememberTokenAttribute($value)
{
return;
}
これは私には解決策ではなく回避策ではないようです。
あなたの責任ではないと思います。これは「界面分離原理」に関する議論です。私はいつもこれらのメソッドシグネチャが(LTSバージョンのユーザーとして)間違っていると感じています。 UserProviderのすべての実装に実際にこれらのメソッドを実装する必要がありますか? GuardとUserProviderの両方のカスタム実装を作成すると、これらのメソッドは必要なくなります。もしそうなら、なぜ私はそれらを実装すべきですか? –