Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - pingidentity/Android-AppAuth-Sample-Application: Sample Android application using the OpenID Foundation AppAuth reference libraries · GitHub
Skip to content

Repository files navigation

Android Native Application SSO Sample Application

android-appauth-sample-application is a basic sample application to demonstrate native application single sign-on using the AppAuth library for Android from the OpenID Foundation.

This sample application is based on the "example" in the AppAuth reference libraries and will authenticate the user and present the user's subject and tokens on the screen. Options to refresh the OAuth 2.0 access token and to refresh the authentication session are also demonstrated.

Refer to the Mobile Application SSO Developers Guide for more detailed information.

Note: You can get developer licenses and the PingFederate software at https://developer.pingidentity.com/get-started

Installation

This sample application has been built using PingFederate 8.0.1 and the OAuth Playground 3.2. Follow the documentation for PingFederate and the OAuth Playground to quickly stand up an OpenID Connect Provider / OAuth Authorization Server.

You will need

Android Studio & project configuration

  • Open this project (android-appauth-sample-application) in Android Studio
  • Add the AppAuth library for Android project to your XCode project
    • File > Project Structure > '+' > Import Gradle Project (browse to the AppAuth library)
    • Clean up any dependencies (i.e. comment out com.jfrog.bintray if you don't use bintray)
    • Add the library as a dependency (File > Project Structure > app > Dependencies ('+ Module dependency')
  • Modify the MainActivity.java file to define your PingFederate server, your client_id and redirect_uri
  • Modify the strings.xml file to define the redirect scheme for the Intent

PingFederate configuration

  • Install PingFederate and the OAuth Playground (see the readme in the OAuth Playground distribution)
  • Modify the OAuth client "ac_client" in the PingFederate configuration:
    • OAuth Settings -> Client Management -> ac_client
    • Edit the "Redirect URIs" option to include the application callback URI (com.pingidentity.developer.appauth://oidc_callback)

Disclaimer

This software is open sourced by Ping Identity but not supported commercially as such. Any questions/issues/comments should be directed to the "Developer Q&A" group in the Ping Identity Support Communities https://community.pingidentity.com/collaborate.

About

Sample Android application using the OpenID Foundation AppAuth reference libraries

Resources

Stars

21 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages