{"adoption": {"forks": 864, "observed_at": "2026-08-28T04:06:06.644052+00:00", "stars": 2024}, "canonical_url": "https://ross.abutalabs.com/products/appauth-ios", "card": {"archived": false, "artifact_type": "library", "description": "iOS and macOS SDK for communicating with OAuth 2.0 and OpenID Connect providers.", "domain": ["security", "mobile-development", "apis"], "enriched": true, "function": ["auth", "sdk"], "health_score": 100, "homepage": "https://openid.github.io/AppAuth-iOS", "language": "Objective-C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["openid/AppAuth-iOS"], "name": "openid/AppAuth-iOS", "platform": ["cpp"], "pushed_at": "2026-08-25T17:29:10+00:00", "repo": "openid/AppAuth-iOS", "stars": 2024, "tags": ["oauth2", "openid-connect", "pkce", "objective-c", "tvos", "native-apps", "ios", "macos", "swift"], "topics": ["oauth2", "openid-connect", "ios-sdk"], "urls": [], "use_cases": ["add oauth2 sign-in to an ios app", "implement openid connect authentication on macos", "secure authorization code flow with pkce in a native app", "sign in to a tvos app via the oauth device authorization grant", "refresh tokens and perform actions with fresh tokens", "authenticate against any oidc-compliant provider from swift or objective-c"], "what_it_is": "AppAuth-iOS is an Objective-C client SDK for iOS, macOS, and tvOS that implements OAuth 2.0 and OpenID Connect authorization flows. It follows RFC 8252 best practices for native apps, using system browsers for auth requests and supporting PKCE, custom URI schemes, and universal links.", "when_to_avoid": ["you need server-side or web-based OAuth flows", "you require embedded webview-based authentication (explicitly unsupported)", "your authorization server assumes confidential web clients with client secrets", "you are building for Android or cross-platform only"], "when_to_choose": ["you need standards-compliant OAuth 2.0 / OIDC in an iOS, macOS, or tvOS app", "you want RFC 8252 best practices with external user agents instead of embedded webviews", "you need PKCE support for public clients", "you want a mature, OpenID Foundation-maintained SDK"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/appauth-ios", "repo": "openid/AppAuth-iOS", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.644052+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:59:49.713163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e98ad5f71c6eb47f6ec453d6e6956b707c048a1e4900538e9b53fa178aa7471c", "fetched_at": "2026-08-28T04:06:06.644052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-iOS"}, {"content_hash": "14781d735d79d910896f70f5daf2a3bef7ce3816404b575b28b007aac6bd39f4", "fetched_at": "2026-08-29T10:39:54.174193+00:00", "kind": "homepage", "missing": false, "url": "https://openid.github.io/AppAuth-iOS"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 75}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3856, "days_push": 8, "days_rel": 9, "gap_med": 148, "n_releases_24m": 4}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}