もう少し修正しました。
このコミットが含まれているのは:
コミット
c2ec493a5b
|
@ -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);
|
||||
}
|
||||
|
|
新しいイシューから参照