「ログイン情報を保持する」の機能が実装されておりません。
このコミットが含まれているのは:
コミット
c1d0fb385b
|
@ -14,6 +14,8 @@ use App\Models\LoginLimits;
|
||||||
|
|
||||||
trait AuthenticationTrait {
|
trait AuthenticationTrait {
|
||||||
private function makeSession ($guard, $db) {
|
private function makeSession ($guard, $db) {
|
||||||
|
session()->regenerate();
|
||||||
|
|
||||||
if (!session()->has($guard)) {
|
if (!session()->has($guard)) {
|
||||||
// 認証されたデータのpasswordとremember_token以外を把握する
|
// 認証されたデータのpasswordとremember_token以外を把握する
|
||||||
unset($db['password']);
|
unset($db['password']);
|
||||||
|
@ -25,6 +27,19 @@ trait AuthenticationTrait {
|
||||||
return $db;
|
return $db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function checkSession () {
|
||||||
|
if (isset($_COOKIE['remember_token']) && !is_null($_COOKIE['remember_token'])) { // クッキーがある場合
|
||||||
|
if (null !== ($get = $this->getModel()->where('remember_token', $_COOKIE['remember_token'])->first())) { // トークンがある場合
|
||||||
|
// セッションを想像する
|
||||||
|
$login_user_datum = $this->makeSession($this->getGuard(), $get->toArray());
|
||||||
|
|
||||||
|
return ['status_code' => 200, 'params' => ['id' => $login_user_datum['id']]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['status_code' => 202];
|
||||||
|
}
|
||||||
|
|
||||||
public function login (Request $r) {
|
public function login (Request $r) {
|
||||||
$loginid = $this->getGuard() == 'children' ? $r->tel : $r->email;
|
$loginid = $this->getGuard() == 'children' ? $r->tel : $r->email;
|
||||||
|
|
||||||
|
@ -38,15 +53,6 @@ trait AuthenticationTrait {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_COOKIE['remember_token']) && !is_null($_COOKIE['remember_token'])) { // クッキーがある場合
|
|
||||||
if (null !== ($get = $this->getModel()->where('remember_token', $_COOKIE['remember_token'])->first())) { // トークンがある場合
|
|
||||||
// セッションを想像する
|
|
||||||
$login_user_datum = $this->makeSession($this->getGuard(), $get->toArray());
|
|
||||||
|
|
||||||
return ['status_code' => 200, 'params' => ['id' => $login_user_datum['id']]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->getGuard() == 'children') {
|
if ($this->getGuard() == 'children') {
|
||||||
Validator::extend('tel_size', function ($attribute, $value, $params, $validator) {
|
Validator::extend('tel_size', function ($attribute, $value, $params, $validator) {
|
||||||
return $this->telsize($value);
|
return $this->telsize($value);
|
||||||
|
@ -95,6 +101,8 @@ trait AuthenticationTrait {
|
||||||
if (Session::has('children')) Session::forget('children');
|
if (Session::has('children')) Session::forget('children');
|
||||||
if (Session::has('fathers')) Session::forget('fathers');
|
if (Session::has('fathers')) Session::forget('fathers');
|
||||||
if (Session::has('admins')) Session::forget('admins');
|
if (Session::has('admins')) Session::forget('admins');
|
||||||
|
unset($_COOKIE['remember_token']);
|
||||||
|
setcookie('remember_token', '', time() - 3600, '/', $_SERVER['HTTP_HOST'], 0, 1);
|
||||||
|
|
||||||
if ($r->remember_token == 'true') {
|
if ($r->remember_token == 'true') {
|
||||||
$token = bin2hex(random_bytes(24));
|
$token = bin2hex(random_bytes(24));
|
||||||
|
|
ファイル差分が大きすぎるため省略します
差分を読み込み
|
@ -33,7 +33,7 @@ return [
|
||||||
|
|
||||||
'lifetime' => env('SESSION_LIFETIME', 120),
|
'lifetime' => env('SESSION_LIFETIME', 120),
|
||||||
|
|
||||||
'expire_on_close' => false,
|
'expire_on_close' => true,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
長すぎる行があるためファイル差分は表示されません
長すぎる行があるためファイル差分は表示されません
|
@ -22,6 +22,26 @@ const AdminLogin = () => {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
isMountedRef.current = false;
|
isMountedRef.current = false;
|
||||||
|
|
||||||
|
axios.post('/api/admin/checkSession').then(response => {
|
||||||
|
if (isMountedRef.current) return;
|
||||||
|
|
||||||
|
switch (response.data.status_code) {
|
||||||
|
case 200: {
|
||||||
|
localStorage.setItem('kiki_login_flag', true);
|
||||||
|
localStorage.setItem('kiki_acc_type', 'admin');
|
||||||
|
localStorage.setItem('kiki_acc_id', response.data.params.id);
|
||||||
|
setCookie('logged', 'success');
|
||||||
|
if (location.search == '')
|
||||||
|
window.location.href = "/admin/meeting";
|
||||||
|
else
|
||||||
|
window.location.href = location.search.replace('?redirect_to=', '');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
isMountedRef.current = true;
|
isMountedRef.current = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,26 @@ const ChildLogin = () => {
|
||||||
const isMountedRef = useRef(true);
|
const isMountedRef = useRef(true);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
isMountedRef.current = false;
|
isMountedRef.current = false;
|
||||||
|
|
||||||
|
axios.post('/api/children/checkSession').then(response => {
|
||||||
|
if (isMountedRef.current) return;
|
||||||
|
|
||||||
|
switch (response.data.status_code) {
|
||||||
|
case 200: {
|
||||||
|
localStorage.setItem('kiki_login_flag', true);
|
||||||
|
localStorage.setItem('kiki_acc_type', 'c-account');
|
||||||
|
localStorage.setItem('kiki_acc_id', response.data.params.id);
|
||||||
|
setCookie('logged', 'success');
|
||||||
|
if (location.search == '')
|
||||||
|
window.location.href = "/c-account/meeting";
|
||||||
|
else
|
||||||
|
window.location.href = location.search.replace('?redirect_to=', '');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
isMountedRef.current = true;
|
isMountedRef.current = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,11 +24,30 @@ const ParentLogin = () => {
|
||||||
const isMountedRef = useRef(true);
|
const isMountedRef = useRef(true);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
isMountedRef.current = false;
|
isMountedRef.current = false;
|
||||||
|
|
||||||
|
axios.post('/api/fathers/checkSession').then(response => {
|
||||||
|
if (isMountedRef.current) return;
|
||||||
|
|
||||||
|
switch (response.data.status_code) {
|
||||||
|
case 200: {
|
||||||
|
localStorage.setItem('kiki_login_flag', true);
|
||||||
|
localStorage.setItem('kiki_acc_type', 'p-account');
|
||||||
|
localStorage.setItem('kiki_acc_id', response.data.params.id);
|
||||||
|
setCookie('logged', 'success');
|
||||||
|
if (location.search == '')
|
||||||
|
window.location.href = "/p-account/meeting";
|
||||||
|
else
|
||||||
|
window.location.href = location.search.replace('?redirect_to=', '');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
isMountedRef.current = true;
|
isMountedRef.current = true;
|
||||||
}
|
}
|
||||||
}, [])
|
}, []);
|
||||||
|
|
||||||
|
|
||||||
const handleSubmit = (e) => {
|
const handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -26,6 +26,7 @@ use Illuminate\Support\Facades\Route;
|
||||||
Route::group(['prefix' => 'admin'], function () {
|
Route::group(['prefix' => 'admin'], function () {
|
||||||
// AdminController
|
// AdminController
|
||||||
Route::post('/login', '\App\Http\Controllers\Api\AdminController@login');
|
Route::post('/login', '\App\Http\Controllers\Api\AdminController@login');
|
||||||
|
Route::post('/checkSession', '\App\Http\Controllers\Api\AdminController@checkSession');
|
||||||
|
|
||||||
Route::group(['middleware' => 'auth:admins'], function () {
|
Route::group(['middleware' => 'auth:admins'], function () {
|
||||||
// AdminController
|
// AdminController
|
||||||
|
@ -88,6 +89,7 @@ Route::group(['prefix' => 'fathers'], function () {
|
||||||
Route::post('/registerMain', '\App\Http\Controllers\Api\FathersController@registerMain');
|
Route::post('/registerMain', '\App\Http\Controllers\Api\FathersController@registerMain');
|
||||||
Route::post('/requestPassword', '\App\Http\Controllers\Api\FathersController@requestPassword');
|
Route::post('/requestPassword', '\App\Http\Controllers\Api\FathersController@requestPassword');
|
||||||
Route::post('/login', '\App\Http\Controllers\Api\FathersController@login');
|
Route::post('/login', '\App\Http\Controllers\Api\FathersController@login');
|
||||||
|
Route::post('/checkSession', '\App\Http\Controllers\Api\FathersController@checkSession');
|
||||||
Route::put('/updatePassword/{father_id?}', '\App\Http\Controllers\Api\FathersController@updatePassword')->name('ppp');
|
Route::put('/updatePassword/{father_id?}', '\App\Http\Controllers\Api\FathersController@updatePassword')->name('ppp');
|
||||||
|
|
||||||
Route::group(['middleware' => ['auth:fathers', 'notice.incomplete']], function () {
|
Route::group(['middleware' => ['auth:fathers', 'notice.incomplete']], function () {
|
||||||
|
@ -159,6 +161,7 @@ Route::group(['prefix' => 'children'], function () {
|
||||||
Route::post('/registerMain', '\App\Http\Controllers\Api\ChildrenController@registerMain');
|
Route::post('/registerMain', '\App\Http\Controllers\Api\ChildrenController@registerMain');
|
||||||
Route::post('/requestPassword', '\App\Http\Controllers\Api\ChildrenController@requestPassword');
|
Route::post('/requestPassword', '\App\Http\Controllers\Api\ChildrenController@requestPassword');
|
||||||
Route::post('/login', '\App\Http\Controllers\Api\ChildrenController@login');
|
Route::post('/login', '\App\Http\Controllers\Api\ChildrenController@login');
|
||||||
|
Route::post('/checkSession', '\App\Http\Controllers\Api\ChildrenController@checkSession');
|
||||||
Route::put('/updatePassword/{child_id?}', '\App\Http\Controllers\Api\ChildrenController@updatePassword')->name('cpc');
|
Route::put('/updatePassword/{child_id?}', '\App\Http\Controllers\Api\ChildrenController@updatePassword')->name('cpc');
|
||||||
|
|
||||||
// FatherRelationsController
|
// FatherRelationsController
|
||||||
|
|
新しいイシューから参照