103 lines
3.4 KiB
PHP
103 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace app\common\controller;
|
|
|
|
use app\common\service\AuthService;
|
|
use app\common\validate\UserValidate;
|
|
use support\Request;
|
|
|
|
class AuthController extends BaseController
|
|
{
|
|
|
|
/**
|
|
* 不需要头信息的方法
|
|
*/
|
|
protected $noNeedHeader = ['feishuAuth'];
|
|
|
|
|
|
// 调试
|
|
public function feishuAuth(Request $request)
|
|
{
|
|
try {
|
|
$code = $request->all();
|
|
return $this->success($code);
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function feishuScope(Request $request)
|
|
{
|
|
try {
|
|
$result = (new AuthService())->feishuAuthorize($request->corp_abbr, $request->system_code);
|
|
return $this->success($result);
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function login(Request $request)
|
|
{
|
|
try {
|
|
$data = $this->validate(new UserValidate(), $this->requestData($request), $request->login_type.'_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(), $this->requestData($request), $request->login_type.'_register');
|
|
$result = (new AuthService())->register($data);
|
|
return $this->success($result, '注册成功');
|
|
} catch (\Throwable $e) {
|
|
return $this->error($e->getMessage());
|
|
}
|
|
}
|
|
|
|
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');
|
|
}
|
|
} |