Skip to content
docsv0.1.0

GitLabOAuthServiceInterface

Contract for GitLab OAuth operations. Supports both gitlab.com and self-hosted GitLab instances. Each consumer plugin provides its own redirectUri.

GitLabOAuthServiceInterface::getAuthUrl()

abstract public function getAuthUrl(string $redirectUri, ?string $state = null): string

Build the GitLab authorization URL.

Parameters

Parameters of getAuthUrl()
NameTypeDescription
$redirectUristringCallback URL specific to the consumer plugin
$state(string | null)Opaque CSRF-protection value. When given, it is appended to the URL as-is and GitLab echoes it back unmodified on the query string of the callback request. Generating, storing, and verifying it is entirely the caller's responsibility — this provider only transports it.

GitLabOAuthServiceInterface::exchangeCode()

abstract public function exchangeCode(string $code, string $redirectUri): Milpa\OAuth\DTO\GitLabUserInfo

Exchange authorization code for user info.

Parameters

Parameters of exchangeCode()
NameTypeDescription
$codestringAuthorization code from GitLab callback
$redirectUristringMust match the one used in getAuthUrl()

GitLabOAuthServiceInterface::getInstanceUrl()

abstract public function getInstanceUrl(): string

Get the GitLab instance base URL (e.g. https://gitlab.com or https://git.mycompany.com).