SDK

Kotlin SDK

authon-androidAndroid SDK with Chrome Custom Tabs OAuth, EncryptedSharedPreferences token storage, and Jetpack Compose components.

Installation

build.gradle.kts
dependencies {
    implementation("dev.authon:authon-android:1.0.0")
}

Setup

MyApplication.kt
import android.app.Application
import dev.authon.Authon

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        Authon.initialize(
            context = this,
            publishableKey = "pk_live_your_key",
            redirectScheme = "myapp"
        )
    }
}

Jetpack Compose

MainScreen.kt
import androidx.compose.runtime.*
import dev.authon.compose.*

@Composable
fun MainScreen() {
    val authState by rememberAuthonState()

    when {
        authState.isLoading -> CircularProgressIndicator()
        authState.isSignedIn -> {
            Column {
                Text("Welcome, ${authState.user?.displayName}!")
                Button(onClick = { Authon.instance.signOut() }) {
                    Text("Sign out")
                }
            }
        }
        else -> {
            Button(onClick = { Authon.instance.openSignIn() }) {
                Text("Sign in")
            }
        }
    }
}

OAuth Sign In

kotlin
// Open OAuth in Chrome Custom Tab
Authon.instance.signInWithOAuth("google")
Authon.instance.signInWithOAuth("github")

AndroidManifest.xml

AndroidManifest.xml
<activity android:name="dev.authon.OAuthCallbackActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="myapp" android:host="oauth" />
    </intent-filter>
</activity>
Authon — Universal Authentication Platform