API接口

1.新增鉴权接口/api/v1/authToken
2.修复注册,登录,获取首页初始化数据,获取用户信息接口报错
This commit is contained in:
2026-04-16 18:42:44 +08:00
parent 5ee0f2b1f4
commit cfe5ec6fb0
12 changed files with 93 additions and 60 deletions

View File

@@ -67,7 +67,8 @@ class Auth extends \ba\Auth
$this->setError('Account not exist');
return false;
}
if ($this->model->status != 'enable') {
$status = $this->model->status ?? '';
if ($status === 'disable' || $status === 0 || $status === '0') {
$this->setError('Account disabled');
return false;
}
@@ -81,7 +82,7 @@ class Auth extends \ba\Auth
return false;
}
public function register(string $username, string $password = '', string $mobile = '', string $email = '', int $group = 1, array $extend = []): bool
public function register(string $username, string $password = '', string $phone = '', string $email = '', int $group = 1, array $extend = []): bool
{
$request = function_exists('request') ? request() : null;
$ip = $request ? $request->getRealIp() : '0.0.0.0';
@@ -90,7 +91,9 @@ class Auth extends \ba\Auth
$this->setError(__('Email'));
return false;
}
if ($username && !preg_match('/^[a-zA-Z][a-zA-Z0-9_]{2,15}$/', $username)) {
$isMobileUsername = preg_match('/^1[3-9]\d{9}$/', $username) === 1;
$isNormalUsername = preg_match('/^[a-zA-Z][a-zA-Z0-9_]{2,15}$/', $username) === 1;
if ($username && !$isMobileUsername && !$isNormalUsername) {
$this->setError(__('Username'));
return false;
}
@@ -112,9 +115,9 @@ class Auth extends \ba\Auth
'join_time' => $time,
'last_login_ip' => $ip,
'last_login_time' => $time,
'status' => 'enable',
'status' => 1,
];
$data = array_merge(compact('username', 'password', 'mobile', 'email'), $data, $extend);
$data = array_merge(compact('username', 'password', 'phone', 'email'), $data, $extend);
Db::startTrans();
try {
@@ -139,7 +142,7 @@ class Auth extends \ba\Auth
public function login(string $username, string $password, bool $keep): bool
{
$accountType = false;
if (preg_match('/^1[3-9]\d{9}$/', $username)) $accountType = 'mobile';
if (preg_match('/^1[3-9]\d{9}$/', $username)) $accountType = 'phone';
elseif (filter_var($username, FILTER_VALIDATE_EMAIL)) $accountType = 'email';
elseif (preg_match('/^[a-zA-Z][a-zA-Z0-9_]{2,15}$/', $username)) $accountType = 'username';
if (!$accountType) {
@@ -152,7 +155,8 @@ class Auth extends \ba\Auth
$this->setError('Account not exist');
return false;
}
if ($this->model->status == 'disable') {
$status = $this->model->status ?? '';
if ($status === 'disable' || $status === 0 || $status === '0') {
$this->setError('Account disabled');
return false;
}
@@ -171,7 +175,7 @@ class Auth extends \ba\Auth
}
}
if (!verify_password($password, $this->model->password, ['salt' => $this->model->salt])) {
if (!verify_password($password, $this->model->password, ['salt' => $this->model->salt ?? ''])) {
$this->loginFailed();
$this->setError('Password is incorrect');
return false;