76 lines
2.7 KiB
PHP
76 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace app\common\controller;
|
|
|
|
use app\common\service\AuthService;
|
|
use app\common\validate\UserValidate;
|
|
use support\Request;
|
|
|
|
class AuthController extends BaseController
|
|
{
|
|
|
|
public function login(Request $request)
|
|
{
|
|
try {
|
|
$data = $this->validate(new UserValidate(), $request->post(), 'upwd_login');
|
|
$result = (new AuthService())->login($data);
|
|
return $this->success($result, '登录成功');
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function register(Request $request)
|
|
{
|
|
try {
|
|
$data = $this->validate(new UserValidate(), $request->post(), 'upwd_register');
|
|
$result = (new AuthService())->register($data);
|
|
return $this->success($result, '注册成功');
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage().'|'.$e->getFile().'|'.$e->getLine());
|
|
}
|
|
}
|
|
|
|
public function verify(Request $request)
|
|
{
|
|
try {
|
|
$token = $request->post('access_token') ?: $request->header('authorization');
|
|
$systemCode = $request->post('system_code');
|
|
if (!$token || !$systemCode) return $this->error('参数缺失', 422);
|
|
$payload = (new AuthService())->verifyToken($token, $systemCode);
|
|
return $this->success($payload, '验证成功');
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage() ?: '无效或过期的token', 401);
|
|
}
|
|
}
|
|
|
|
public function refresh(Request $request)
|
|
{
|
|
try {
|
|
$refresh_token = $request->post('refresh_token');
|
|
$systemCode = $request->post('system_code');
|
|
if (!$refresh_token || !$systemCode) return $this->error('参数缺失', 422);
|
|
$result = (new AuthService())->refreshToken($refresh_token, $systemCode);
|
|
return $this->success($result, '刷新成功');
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage(), 401);
|
|
}
|
|
}
|
|
|
|
public function logout(Request $request)
|
|
{
|
|
$token = $request->post('access_token') ?: $request->header('Authorization');
|
|
$systemCode = $request->post('system_code') ?: $request->header('system_code');
|
|
(new AuthService())->logout($token, $systemCode);
|
|
return $this->success([], '已登出');
|
|
}
|
|
|
|
public function blockToken(Request $request)
|
|
{
|
|
$token = $request->post('token');
|
|
$systemCode = $request->post('system_code');
|
|
if (!$token || !$systemCode) return $this->error('参数缺失', 422);
|
|
(new AuthService())->blockToken($token, $systemCode);
|
|
return $this->success([], '已强制停用该token');
|
|
}
|
|
} |