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

@@ -14,7 +14,8 @@ use support\Response;
class Auth extends MobileBase
{
protected array $noNeedLogin = ['userRegister', 'userLogin', 'tokenRefresh'];
protected array $noNeedLogin = ['register', 'login', 'refreshToken', 'userRegister', 'userLogin', 'tokenRefresh'];
protected array $noNeedAuthToken = ['register', 'login', 'refreshToken', 'userRegister', 'userLogin', 'tokenRefresh'];
public function userRegister(Request $request): Response
{
@@ -23,27 +24,22 @@ class Auth extends MobileBase
return $response;
}
$account = trim((string) $request->post('account', ''));
$accountType = trim((string) $request->post('account_type', ''));
$username = trim((string) $request->post('username', ''));
if ($username === '') {
$username = trim((string) $request->post('account', ''));
}
$password = (string) $request->post('password', '');
$inviteCode = trim((string) $request->post('invite_code', ''));
if ($account === '' || $accountType === '' || $password === '') {
if ($username === '' || $password === '') {
return $this->mobileError(1001, 'Missing parameters');
}
if ($accountType !== 'phone' && $accountType !== 'email') {
return $this->mobileError(1003, 'Invalid parameter value');
if (!preg_match('/^1[3-9]\d{9}$/', $username)) {
return $this->mobileError(1003, 'Please enter the correct mobile number');
}
$username = $account;
$mobile = '';
$phone = $username;
$email = '';
if ($accountType === 'phone') {
$mobile = $account;
}
if ($accountType === 'email') {
$email = $account;
}
$extend = [];
if ($inviteCode !== '') {
@@ -56,7 +52,7 @@ class Auth extends MobileBase
$extend['channel_id'] = $inviterAdmin['channel_id'] ?? null;
}
$registered = $this->auth->register($username, $password, $mobile, $email, 1, $extend);
$registered = $this->auth->register($username, $password, $phone, $email, 1, $extend);
if (!$registered) {
return $this->mobileError(2000, (string) $this->auth->getError());
}
@@ -66,17 +62,7 @@ class Auth extends MobileBase
return $this->mobileError(2000, 'Registered successfully but login failed');
}
$userInfo = $this->auth->getUserInfo();
return $this->mobileSuccess([
'user_id' => $userInfo['id'] ?? null,
'access_token' => $userInfo['token'] ?? '',
'expires_in' => config('buildadmin.user_token_keep_time', 259200),
'profile' => [
'username' => $userInfo['username'] ?? '',
'coin' => $userInfo['coin'] ?? '0.0000',
'channel_id' => $userInfo['channel_id'] ?? null,
],
]);
return $this->mobileSuccess($this->buildLoginPayload());
}
public function userLogin(Request $request): Response
@@ -86,28 +72,20 @@ class Auth extends MobileBase
return $response;
}
$account = trim((string) $request->post('account', ''));
$username = trim((string) $request->post('username', ''));
if ($username === '') {
$username = trim((string) $request->post('account', ''));
}
$password = (string) $request->post('password', '');
if ($account === '' || $password === '') {
if ($username === '' || $password === '') {
return $this->mobileError(1001, 'Missing parameters');
}
$ok = $this->auth->login($account, $password, true);
$ok = $this->auth->login($username, $password, true);
if (!$ok) {
return $this->mobileError(1101, 'Incorrect account or password');
}
$userInfo = $this->auth->getUserInfo();
return $this->mobileSuccess([
'access_token' => $userInfo['token'] ?? '',
'refresh_token' => $userInfo['refresh_token'] ?? '',
'expires_in' => config('buildadmin.user_token_keep_time', 259200),
'user' => [
'id' => $userInfo['id'] ?? null,
'username' => $userInfo['username'] ?? '',
'coin' => $userInfo['coin'] ?? '0.0000',
'risk_flags' => $userInfo['risk_flags'] ?? 0,
],
]);
return $this->mobileSuccess($this->buildLoginPayload());
}
public function tokenRefresh(Request $request): Response
@@ -130,9 +108,25 @@ class Auth extends MobileBase
$newToken = Random::uuid();
Token::set($newToken, UserAuth::TOKEN_TYPE, $tokenData['user_id'], config('buildadmin.user_token_keep_time', 259200));
return $this->mobileSuccess([
'access_token' => $newToken,
'user-token' => $newToken,
'expires_in' => config('buildadmin.user_token_keep_time', 259200),
]);
}
private function buildLoginPayload(): array
{
$userInfo = $this->auth->getUserInfo();
return [
'user-token' => $userInfo['token'] ?? '',
'refresh_token' => $userInfo['refresh_token'] ?? '',
'expires_in' => config('buildadmin.user_token_keep_time', 259200),
'user' => [
'username' => $userInfo['username'] ?? '',
'coin' => $userInfo['coin'] ?? '0.0000',
'channel_id' => $userInfo['channel_id'] ?? null,
'risk_flags' => $userInfo['risk_flags'] ?? 0,
],
];
}
}