feat(oauth server): basic settings

This commit is contained in:
FoskyM 2023-09-29 20:50:11 +08:00
parent e1283b013b
commit 6fc62fc269
No known key found for this signature in database
GPG key ID: 42C0ED6994AD7E9C

View file

@ -18,8 +18,16 @@ use OAuth2\GrantType\ClientCredentials;
use OAuth2\GrantType\AuthorizationCode;
use OAuth2\GrantType\UserCredentials;
use OAuth2\GrantType\RefreshToken;
use Flarum\Settings\SettingsRepositoryInterface;
class OAuth
{
protected $settings;
public function __construct(SettingsRepositoryInterface $settings)
{
$this->settings = $settings;
}
public function response(): Response
{
return new Response;
@ -30,10 +38,13 @@ class OAuth
}
public function server(): Server
{
$storage = new Storage;
$server = new Server($storage, array(
'allow_implicit' => true,
'enforce_state' => false
'allow_implicit' => $this->settings->get('foskym-oauth-center.allow_implicit') == "1",
'enforce_state' => $this->settings->get('foskym-oauth-center.enforce_state') == "1",
'require_exact_redirect_uri' => $this->settings->get('foskym-oauth-center.require_exact_redirect_uri') == "1",
'access_lifetime' => $this->settings->get('foskym-oauth-center.access_lifetime') == "" ? 3600 : $this->settings->get('foskym-oauth-center.access_lifetime'),
));
$server->addGrantType(new AuthorizationCode($storage));
$server->addGrantType(new ClientCredentials($storage));