2016-03-31 13 views
1

laravel 5.2で\ Auth :: logout()を実行すると、refreshRememberToken呼び出しがトークンを再生成しようとします(データベースに保存されます)。Laravel 5.2でrefreshRememberTokenを無効にします。

質問:どうすればこの機能を無効にできますか?

私は、この機能を望んでいないが

答えて

1

これを行うことのない、設定方法がないように見えます(それが列&などの不足により、今エラーの多くを生成します)。

をあなたはガードのログアウト方法&オーバーライドを拡張することができますし、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

1

に従ってください:あなたは、AUTH Auth::provider('customimplementation')を拡張して、認証設定のdriverキーを変更しています汚いトリック:私は、このメソッドを追加

Userモデルに

function setRememberTokenAttribute($value) 
{ 
    return; 
} 

これは私には解決策ではなく回避策ではないようです。

+0

あなたの責任ではないと思います。これは「界面分離原理」に関する議論です。私はいつもこれらのメソッドシグネチャが(LTSバージョンのユーザーとして)間違っていると感じています。 UserProviderのすべての実装に実際にこれらのメソッドを実装する必要がありますか? GuardとUserProviderの両方のカスタム実装を作成すると、これらのメソッドは必要なくなります。もしそうなら、なぜ私はそれらを実装すべきですか? –