FastMovieAI AI短剧创作平台 二开基线
- 源码: xhadmincn/FastMovieAI (Apache 2.0) - 二开: Docker部署, Swoole改Select, route.php修复, 补update/VERSION - vendor/示例资源已gitignore
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\Basic;
|
||||
use app\model\Admin;
|
||||
use app\model\AdminRole;
|
||||
use app\expose\utils\Password;
|
||||
use app\expose\enum\ResponseCode;
|
||||
use app\expose\helper\Captcha;
|
||||
use app\expose\helper\Config;
|
||||
use Exception;
|
||||
use support\Request;
|
||||
|
||||
class LoginController extends Basic
|
||||
{
|
||||
/**
|
||||
* 不需要登录的方法
|
||||
* @var string[]
|
||||
*/
|
||||
protected $notNeedLogin = ['login'];
|
||||
protected $notNeedAuth = ['login'];
|
||||
public function login(Request $request)
|
||||
{
|
||||
try {
|
||||
$D = $request->post();
|
||||
$captcha_state = Config::get('captcha', 'state');
|
||||
if ($captcha_state) {
|
||||
if (!Captcha::check($D['captcha'], $D['token'])) {
|
||||
throw new Exception("验证码不正确", ResponseCode::CAPTCHA);
|
||||
}
|
||||
}
|
||||
$Admin = Admin::where(['username' => $D['username']])->find();
|
||||
if (!$Admin) {
|
||||
throw new Exception('密码错误');
|
||||
}
|
||||
if (!Password::verify($D['password'], $Admin->password)) {
|
||||
throw new Exception('密码错误');
|
||||
}
|
||||
if (!$Admin->state) {
|
||||
throw new Exception('管理员账号异常');
|
||||
}
|
||||
$AdminRole = AdminRole::where(['id' => $Admin->role_id])->find();
|
||||
if (!$AdminRole) {
|
||||
throw new Exception('管理员角色异常');
|
||||
}
|
||||
if (!$AdminRole->state) {
|
||||
throw new Exception('管理员角色异常');
|
||||
}
|
||||
if (!$AdminRole->is_system) {
|
||||
$now = date('H:i:s');
|
||||
if (!($now >= $Admin->allow_time_start && $now <= $Admin->allow_time_end)) {
|
||||
throw new Exception("当前不在工作时间");
|
||||
}
|
||||
if (!in_array(date('w'), $Admin->allow_week)) {
|
||||
throw new Exception("今日因该是休息日哦");
|
||||
}
|
||||
}
|
||||
$Admin->login_time = date('Y-m-d H:i:s');
|
||||
$Admin->login_ip = $request->getRealIp(true);
|
||||
if ($Admin->save()) {
|
||||
return $this->success('登录成功', Admin::getTokenInfo($Admin));
|
||||
} else {
|
||||
throw new Exception("登录失败");
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
return $this->exception($th);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user