もう少し修正しました。

このコミットが含まれているのは:
守矢諏訪子 2022-01-17 15:34:02 +09:00
コミット c2ec493a5b
1個のファイルの変更12行の追加7行の削除

ファイルの表示

@ -6,6 +6,7 @@ use App\Http\Controllers\Controller, Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
// use App\Models\LoginLimits;
@ -86,26 +87,30 @@ trait AuthenticationTrait {
if (Session::has('fathers')) Session::forget('fathers');
if (Session::has('admins')) Session::forget('admins');
// セッションを想像する
$login_user_datum = $this->makeSession($this->getGuard(), $get->toArray());
if ($r->remember_token) {
if ($r->remember_token == 'true') {
$token = bin2hex(random_bytes(24));
try {
$this->getGuard()->where('id', $login_user_datum['id'])->update(['remember_token' => $token]);
$this->getModel()->where('id', $get->id)->update(['remember_token' => $token]);
setcookie('remember_token', $token, time()+157788000, '/', $_SERVER['HTTP_HOST'], 0, 1);
}
catch (\Throwable $e) {
Log::critical($e->getMessage());
return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']];
}
}
// セッションを想像する
$login_user_datum = $this->makeSession($this->getGuard(), $get->toArray());
return ['status_code' => 200, 'params' => ['id' => $login_user_datum['id']]];
}
public function logout () {
// セッションを破壊すると、ログイン画面に移転する。
$guard = $this->getGuard();
if (null !== $rem = $this->getModel()->select('remember_token')->where('id', Session::get()['id'])->first()) {
$this->getModel()->where('id', Session::get()['id'])->update(['remember_token' => null]);
if (null !== $rem = $this->getModel()->select('remember_token')->where('id', session()->get($guard)['id'])->first()) {
$this->getModel()->where('id', session()->get($guard)['id'])->update(['remember_token' => null]);
unset($_COOKIE['remember_token']);
setcookie('remember_token', '', time() - 3600, '/', $_SERVER['HTTP_HOST'], 0, 1);
}