feat: 开放API授权相关
This commit is contained in:
37
app/openapi/controller/v1/Authorize.php
Normal file
37
app/openapi/controller/v1/Authorize.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?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());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user