41 行
1.5 KiB
PHP
41 行
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace App\Http\Controllers\Api;
|
||
|
|
||
|
use App\Http\Controllers\Controller;
|
||
|
use Illuminate\Support\Facades\Validator;
|
||
|
use Illuminate\Support\Facades\Hash;
|
||
|
use Illuminate\Http\Request;
|
||
|
|
||
|
use App\Models\Admin;
|
||
|
use App\Models\LoginLimits;
|
||
|
|
||
|
class AdminController extends Controller {
|
||
|
public function login (Request $r) {
|
||
|
$validate = Validator::make($r->all(), [
|
||
|
'email' => 'required|max:255|email',
|
||
|
'password' => 'required|min:8|max:72'
|
||
|
]);
|
||
|
|
||
|
if ($validate->fails()) {
|
||
|
// バリデーションエラー
|
||
|
return ['status_code' => 422, 'error_messages' => $validate->errors()];
|
||
|
}
|
||
|
|
||
|
// 存在しない場合
|
||
|
if (null === ($admin = Admin::select('id')->where('email', $r->email)->where('password', $r->password)->first())) {
|
||
|
return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']];
|
||
|
}
|
||
|
|
||
|
// パスワードが異なる場合
|
||
|
// if (!Hash::check($r->password, $admin->password)) {
|
||
|
if ($r->password != $admin->password) {
|
||
|
return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']];
|
||
|
}
|
||
|
|
||
|
// 親一覧の取得に成功
|
||
|
session(['email' => $r->email, 'password' => $r->password]);
|
||
|
return ['status_code' => 200];
|
||
|
}
|
||
|
}
|