ログインIDは「ope_id」⇒「login_id」に変更
All checks were successful
Deploy main / deploy (push) Successful in 25s
All checks were successful
Deploy main / deploy (push) Successful in 25s
This commit is contained in:
parent
e7d517edff
commit
96c72b9bda
@ -70,7 +70,9 @@ class LoginController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ログインリクエストのバリデーション
|
* ログインリクエストのバリデーション
|
||||||
* Laravel 12変更点:ope_id, ope_passフィールドを使用(Laravel 5.7と同じ)
|
*
|
||||||
|
* 仕様上の入力名(フォーム側)は ope_id / ope_pass のまま維持し、
|
||||||
|
* 内部の認証キーは login_id に寄せる(login_id 統一)。
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return void
|
* @return void
|
||||||
@ -79,7 +81,7 @@ class LoginController extends Controller
|
|||||||
{
|
{
|
||||||
// 個別未入力メッセージ(仕様1,2)
|
// 個別未入力メッセージ(仕様1,2)
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'ope_id' => 'required|string',
|
'ope_id' => 'required|string', // フォームの入力名は現状維持(実体は login_id)
|
||||||
'ope_pass' => 'required|string',
|
'ope_pass' => 'required|string',
|
||||||
], [
|
], [
|
||||||
'ope_id.required' => 'ログインIDが未入力です。',
|
'ope_id.required' => 'ログインIDが未入力です。',
|
||||||
@ -90,36 +92,46 @@ class LoginController extends Controller
|
|||||||
/**
|
/**
|
||||||
* ログイン認証を試行
|
* ログイン認証を試行
|
||||||
*
|
*
|
||||||
|
*
|
||||||
|
* - 画面入力(ope_id)= DBの login_id として扱う
|
||||||
|
* - 退職フラグチェックも login_id で取得して判定する
|
||||||
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
protected function attemptLogin(Request $request)
|
protected function attemptLogin(Request $request)
|
||||||
{
|
{
|
||||||
// 先にIDのみでオペレータ取得して退職フラグを確認(仕様5-1)
|
// 先にIDのみでオペレータ取得して退職フラグを確認(仕様5-1)
|
||||||
$opeId = $request->input('ope_id');
|
$loginId = $request->input('ope_id'); // 入力名は ope_id だが中身は login_id
|
||||||
$operator = \App\Models\Ope::where('ope_id', $opeId)->first();
|
$operator = \App\Models\Ope::where('login_id', $loginId)->first();
|
||||||
|
|
||||||
if ($operator && (int)($operator->ope_quit_flag) === 1) {
|
if ($operator && (int)($operator->ope_quit_flag) === 1) {
|
||||||
// 退職扱いは認証失敗と同じメッセージ(仕様5-1 と 3/4 統一表示)
|
// 退職扱いは認証失敗と同じメッセージ(仕様5-1 と 3/4 統一表示)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 認証実行(credentials() で login_id / password を渡す)
|
||||||
return Auth::attempt($this->credentials($request), false);
|
return Auth::attempt($this->credentials($request), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 認証用の資格情報を取得
|
* 認証用の資格情報を取得
|
||||||
* Laravel 12変更点:ope_idとope_passをpasswordフィールドにマッピング
|
*
|
||||||
|
*
|
||||||
|
* - 認証IDを login_id に統一
|
||||||
|
* - パスワード入力(ope_pass)は Auth 側の password にマッピング
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function credentials(Request $request)
|
protected function credentials(Request $request)
|
||||||
{
|
{
|
||||||
// Laravel 5.7: ope_id, ope_passをそのまま使用
|
return [
|
||||||
// Laravel 12: ope_passをpasswordにマッピングして認証
|
'login_id' => $request->input('ope_id'), // フォーム入力(ope_id)→ DB列 login_id
|
||||||
return $request->only('ope_id') + ['password' => $request->input('ope_pass')];
|
'password' => $request->input('ope_pass'), // フォーム入力(ope_pass)→ 認証用 password
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ログイン成功時のレスポンス
|
* ログイン成功時のレスポンス
|
||||||
*
|
*
|
||||||
@ -130,8 +142,11 @@ class LoginController extends Controller
|
|||||||
{
|
{
|
||||||
$request->session()->regenerate();
|
$request->session()->regenerate();
|
||||||
$this->clearLoginAttempts($request);
|
$this->clearLoginAttempts($request);
|
||||||
|
|
||||||
// 仕様5: ログインIDをセッション保持
|
// 仕様5: ログインIDをセッション保持
|
||||||
|
// ここで保持する値も login_id(入力名は ope_id のまま)
|
||||||
$request->session()->put('login_ope_id', $request->input('ope_id'));
|
$request->session()->put('login_ope_id', $request->input('ope_id'));
|
||||||
|
|
||||||
return redirect()->intended($this->redirectTo);
|
return redirect()->intended($this->redirectTo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,6 +158,7 @@ class LoginController extends Controller
|
|||||||
*/
|
*/
|
||||||
protected function sendFailedLoginResponse(Request $request)
|
protected function sendFailedLoginResponse(Request $request)
|
||||||
{
|
{
|
||||||
|
// 画面側のエラー表示キーは仕様に合わせて ope_id のまま
|
||||||
throw ValidationException::withMessages([
|
throw ValidationException::withMessages([
|
||||||
'ope_id' => [trans('auth.failed')],
|
'ope_id' => [trans('auth.failed')],
|
||||||
]);
|
]);
|
||||||
@ -176,7 +192,8 @@ class LoginController extends Controller
|
|||||||
protected function hasTooManyLoginAttempts(Request $request)
|
protected function hasTooManyLoginAttempts(Request $request)
|
||||||
{
|
{
|
||||||
return RateLimiter::tooManyAttempts(
|
return RateLimiter::tooManyAttempts(
|
||||||
$this->throttleKey($request), 5
|
$this->throttleKey($request),
|
||||||
|
5
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,7 +206,8 @@ class LoginController extends Controller
|
|||||||
protected function incrementLoginAttempts(Request $request)
|
protected function incrementLoginAttempts(Request $request)
|
||||||
{
|
{
|
||||||
RateLimiter::hit(
|
RateLimiter::hit(
|
||||||
$this->throttleKey($request), 60
|
$this->throttleKey($request),
|
||||||
|
60
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,12 +236,16 @@ class LoginController extends Controller
|
|||||||
/**
|
/**
|
||||||
* レート制限用のスロットルキーを取得
|
* レート制限用のスロットルキーを取得
|
||||||
*
|
*
|
||||||
|
*
|
||||||
|
* - 画面入力名は ope_id のまま
|
||||||
|
* - ただし内容は login_id を想定(ログインID文字列)
|
||||||
|
*
|
||||||
* @param \Illuminate\Http\Request $request
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function throttleKey(Request $request)
|
protected function throttleKey(Request $request)
|
||||||
{
|
{
|
||||||
return Str::lower($request->input('ope_id')).'|'.$request->ip();
|
return Str::lower($request->input('ope_id')) . '|' . $request->ip();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -238,6 +260,7 @@ class LoginController extends Controller
|
|||||||
$this->throttleKey($request)
|
$this->throttleKey($request)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 画面側のエラー表示キーは仕様に合わせて ope_id のまま
|
||||||
throw ValidationException::withMessages([
|
throw ValidationException::withMessages([
|
||||||
'ope_id' => [trans('auth.throttle', ['seconds' => $seconds])],
|
'ope_id' => [trans('auth.throttle', ['seconds' => $seconds])],
|
||||||
]);
|
]);
|
||||||
|
|||||||
@ -41,6 +41,7 @@ class ResetPasswordController extends Controller
|
|||||||
return back()->withErrors(['email' => 'ユーザーが見つかりません。']);
|
return back()->withErrors(['email' => 'ユーザーが見つかりません。']);
|
||||||
}
|
}
|
||||||
$user->password = Hash::make($request->password);
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->updated_at = now();
|
||||||
$user->save();
|
$user->save();
|
||||||
|
|
||||||
// トークン削除
|
// トークン削除
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user