{"type":"mcp_server","name":"turbo-garbanzo","description":"AppAuth for Android is a client SDK facilitating communication with OAuth 2.0 and OpenID Connect providers, mapping protocol flows and offering convenience methods for tasks like refreshing tokens.","category":"Developer Tools","language":null,"stars":34,"forks":4,"owner":"mercerheather476","github_url":"https://github.com/mercerheather476/turbo-garbanzo","homepage":null,"setup":"## Setup\n\n1.  **Download:** AppAuth for Android is available on [MavenCentral](https://search.maven.org/search?q=g:net.openid%20appauth)\n\n    ```groovy\n    implementation 'net.openid:appauth:<version>'\n    ```\n\n2.  **Requirements:** AppAuth supports Android API 16 (Jellybean) and above.\n3.  **Custom URI Scheme Redirect:** Configure a distinct scheme using \"reverse domain name notation\".\n\n    ```groovy\n    android.defaultConfig.manifestPlaceholders = [\n     'appAuthRedirectScheme': 'com.example.app'\n    ]\n    ```\n\n4.  **Intent-Filter Configuration:** Alternatively, configure the redirect URI directly by adding an intent-filter for AppAuth's RedirectUriReceiverActivity to your AndroidManifest.xml.\n\n    ```xml\n    <activity\n            android:name=\"net.openid.appauth.RedirectUriReceiverActivity\"\n            tools:node=\"replace\">\n        <intent-filter>\n            <action android:name=\"android.intent.action.VIEW\"/>\n            <category android:name=\"android.intent.category.DEFAULT\"/>\n            <category android:name=\"android.intent.category.BROWSABLE\"/>\n            <data android:scheme=\"com.example.app\"/>\n        </intent-filter>\n    </activity>\n    ```\n\n5.  **HTTPS Redirect URI:** If an HTTPS redirect URI is required, modify your AndroidManifest.xml.\n\n    ```xml\n    <activity\n            android:name=\"net.openid.appauth.RedirectUriReceiverActivity\"\n            tools:node=\"replace\">\n        <intent-filter>\n            <action android:name=\"android.intent.action.VIEW\"/>\n            <category android:name=\"android.intent.category.DEFAULT\"/>\n            <category android:name=\"android.intent.category.BROWSABLE\"/>\n            <data android:scheme=\"https\"\n                  android:host=\"app.example.com\"\n                  android:path=\"/oauth2redirect\"/>\n        </intent-filter>\n    </activity>\n    ```\n\n6.  **Building from the Command line:** AppAuth for Android uses Gradle as its build system; run `./gradlew assemble` to build the library and app binaries.\n7.  **Building from Android Studio:** In AndroidStudio, File -> New -> Import project and select the root folder.\n","tools":"## Available Tools\n\n1.  **AuthorizationServiceConfiguration:** Used to instruct AppAuth how to interact with the authorization service, either by directly creating an instance or retrieving an OpenID Connect discovery document.\n2.  **AuthorizationRequest:** Used to construct an authorization request with parameters like client ID, response type, and redirect URI.\n3.  **AuthorizationService:** Used to dispatch the AuthorizationRequest and TokenRequest.\n4.  **AuthState:** Encapsulates the authorization state of the user and is designed to be easily persistable.\n5.  **TokenRequest:** Used to exchange the authorization code for a refresh token.\n6.  **performActionWithFreshTokens:** Utility method provided by AuthState to automatically refresh access tokens as necessary before performing actions that require valid tokens.\n7.  **AppAuthConfiguration:** Provides advanced configuration options, such as controlling which browser is used for authorization and customizing the connection builder for HTTP requests.\n8.  **RegistrationRequest:** Used for OAuth2 dynamic client registration.\n9. **EndSessionRequest:** Used to end current session.","faq":null,"created_at":"2022-08-07T12:15:53+00:00","updated_at":"2025-03-13T06:29:33+00:00","source_url":"https://model-context-protocol.com/servers/android-oauth-openid-connect-client-sdk","related_articles":[]}