2
私はLaravel + AngularアプリケーションにJWTを使用しています。私はLaravel 5.3がボックスの外にログイン抑制機能を持っているのを見る。しかし、JWT Authを使用している場合、これをどのように動作させることができますか?次のコードがありますが、ログイン抑制が機能していません。数多くの失敗のInspiteは、私だけInvalid Login Details
エラーが発生しますが、そのはToo many logins
エラーを絞ると表示されない:Laravel 5.3 JWT Auth使用時のスロットルログイン
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $maxLoginAttempts=5;
protected $lockoutTime=300;
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
$this->validate($request, [
'email' => 'required',
'password' => 'required',
]);
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return response()->json(['error' => 'Too many logins'], 400);
}
try {
if (! $token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'Invalid Login Details'], 401);
}
} catch (JWTException $e) {
// something went wrong
$this->incrementLoginAttempts($request);
return response()->json(['error' => 'Could Not Create Token'], 500);
}
// if no errors are encountered we can return a JWT
return response()->json(compact('token'));
}
}
はどのようにJWTAuthを使用して使用してこの機能を使用していますか?誰かが私を助けてくれますか?
ありがとう、あなたの返信と良い点は@Rafalです。私はログイン試行の中でインクリメントを追加しましたが、失敗した試行の後でも 'Invalid Login Details'エラーメッセージしか表示されませんでした。 – Neel
どのキャッシュを使用していますか、正しく動作していますか? RateLimiterはキャッシュを使用しているため、問題になる可能性があります。 –
申し訳ありません、あなたはキャッシュドライバを参照していますか?私はそれを 'CACHE_DRIVER = array'として設定しました。また、デフォルトのAuthの代わりにJWTを使用すると、動作しない理由がありますか? – Neel