OAuthProvider

interface OAuthProvider

An interface for defining OAuth2 providers.

Inheritors

Types

Link copied to clipboard
object Companion
Link copied to clipboard
data class Generic(val name: String, val authEndpoint: String, val tokenEndpoint: String, val userInfoEndpoint: String?, val idPath: List<String>, val usernamePath: List<String>, val emailPath: List<String>, val defaultScopes: List<String> = listOf("openid", "profile", "email")) : OAuthProvider

A generic OAuth2 provider that can be configured at runtime.

Link copied to clipboard
data object GitHub : OAuthProvider

Standard GitHub OAuth2 provider.

Link copied to clipboard
data object Google : OAuthProvider

Standard Google OAuth2 provider.

Link copied to clipboard
data class Microsoft(val tenant: String = "common") : OAuthProvider

Standard Microsoft (Entra ID) OAuth2 provider.

Properties

Link copied to clipboard
abstract val authEndpoint: String
Link copied to clipboard
Link copied to clipboard
abstract val emailPath: List<String>

The path to the user's email in the user info JSON.

Link copied to clipboard
abstract val idPath: List<String>

The path to the user's unique ID in the user info JSON.

Link copied to clipboard
abstract val name: String
Link copied to clipboard
abstract val tokenEndpoint: String
Link copied to clipboard
abstract val userInfoEndpoint: String?
Link copied to clipboard
abstract val usernamePath: List<String>

The path to the user's username in the user info JSON.

Functions

Link copied to clipboard

Parses the user info JSON from the provider and returns a triple of (providerUserId, username, email).