Source of file Authenticator.php
Size: 1,642 Bytes - Last Modified: 2021-12-23T10:19:08+00:00
/var/www/docs.ssmods.com/process/src/src/Authenticator.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?php namespace Riddler7\Oauth2GraphQL; use AdvancedLearning\Oauth2Server\Exceptions\AuthenticationException; use AdvancedLearning\Oauth2Server\Models\Client; use function is_null; use SilverStripe\Control\HTTPRequest; use SilverStripe\Core\Injector\Injector; use SilverStripe\GraphQL\Auth\AuthenticatorInterface; use SilverStripe\ORM\ValidationException; use SilverStripe\Security\Member; use function substr; class Authenticator implements AuthenticatorInterface { public function authenticate(HTTPRequest $request) { $authenticator = Injector::inst()->get(\AdvancedLearning\Oauth2Server\Services\Authenticator::class); try { $request = $authenticator->authenticate($request); if ($userId = $request->getHeader('oauth_user_id')) { return Member::get()->filter(['Email' => $userId])->first(); } } catch (AuthenticationException $exception) { throw new ValidationException($exception->getMessage(), $exception->getCode() ?: 403); } } public function isApplicable(HTTPRequest $request) { return !is_null($this->getToken($request)); } /** * Extract the token from the authorization header. * * @param HTTPRequest $request The request container the token. * * @return null|string */ protected function getToken(HTTPRequest $request): ?string { if ($authHeader = $request->getHeader('Authorization')) { if (stripos($authHeader, 'Bearer ') === 0) { return substr($authHeader, 6); } } return null; } } |