このリポジトリは2023-09-09にアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュ、イシューの作成、プルリクエストはできません。
kikikan/backend/app/Http/Controllers/Api/LoginLimitsController.php

43 行
1.4 KiB
PHP
Raw 通常表示 履歴

2021-09-30 13:25:22 +09:00
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\LoginLimits;
class LoginLimitsController extends Controller {
public function countFailure (Request $r) {
// user_agentがなければ、エラーを出します。
if (!isset($r->user_agent)) return ['status_code' => 400, 'error_messages' => 'ユーザーエイジェントを読めません。'];
// 受取
if ($get = LoginLimits::where('user_agent', $r->user_agent)->first()) {
// 失敗数は10以上だと、エラーを出します。以内の場合、失敗数を増えます。
if ($get->fail_number >= 10) {
return ['status_code' => 400, 'error_messages' => 'ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。'];
}
else {
LoginLimits::where('user_agent', $r->user_agent)->update(['fail_number' => $get->fail_number+1]);
}
}
else {
// まだこのuser_agentがなければ、追加します。
LoginLimits::insert(['user_agent' => $r->user_agent, 'fail_number' => 1]);
}
return ['status' => 200];
}
public function delete (Request $r) {
// 削除成功
if (LoginLimits::where('user_agent', $r->user_agent)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}