Files
orico-official-website/app/openapi/controller/v1/Authorize.php
2025-05-22 13:53:49 +08:00

37 lines
1.0 KiB
PHP

<?php
declare (strict_types = 1);
namespace app\openapi\controller\v1;
use OAuth2\OAuth2;
use OAuth2\OAuth2ServerException;
use oauth\OAuthStorage;
use Symfony\Component\HttpFoundation\Request;
class Authorize
{
/**
* 获取/刷新token
*/
public function token()
{
try {
$post = request()->post([
'client_id',
'client_secret',
'grant_type',
'refresh_token',
]);
$server = request()->server();
$request = new Request([], $post, [], [], [], $server);
$storage = new OAuthStorage;
$oauth = new OAuth2($storage);
$token = $oauth->grantAccessToken($request);
return success('success', json_decode($token->getContent(), true));
} catch (OAuth2ServerException $e) {
return error($e->getMessage() . ' - ' . $e->getDescription());
} catch (\Throwable $th) {
return error($th->getMessage());
}
}
}