in runtime/src/commonMain/kotlin/space/jetbrains/api/runtime/AuthCodeFlow.kt [66:91]
public fun authCodeSpaceUrl(
appInstance: SpaceAppInstance,
scope: PermissionScope,
state: String? = null,
redirectUri: String,
requestCredentials: OAuthRequestCredentials? = null,
accessType: OAuthAccessType = OAuthAccessType.ONLINE,
codeVerifier: String? = null,
): String = URLBuilder(appInstance.spaceServer.oauthAuthUrl).also {
it.parameters.append("response_type", "code")
if (state != null) {
it.parameters.append("state", state)
}
it.parameters.append("redirect_uri", redirectUri)
if (requestCredentials != null) {
it.parameters.append("request_credentials", requestCredentials.parameterValue)
}
it.parameters.append("client_id", appInstance.clientId)
it.parameters.append("scope", scope.toString())
it.parameters.append("access_type", accessType.parameterValue)
if (codeVerifier != null) {
val (codeChallenge, codeChallengeMethod) = codeChallenge(codeVerifier)
it.parameters.append("code_challenge_method", codeChallengeMethod.parameterValue)
it.parameters.append("code_challenge", codeChallenge)
}
}.build().toString()