{"id":21211843,"url":"https://github.com/passageidentity/example-flutter","last_synced_at":"2025-12-29T17:53:57.859Z","repository":{"id":191495376,"uuid":"675759255","full_name":"passageidentity/example-flutter","owner":"passageidentity","description":"Example Flutter App with Passage Auth","archived":false,"fork":false,"pushed_at":"2024-10-03T17:15:41.000Z","size":338,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-07T10:52:46.254Z","etag":null,"topics":["flutter","flutter-apps","flutter-demo","flutter-examples","flutter-web","passkeys","passkeys-demo"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passageidentity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-07T16:49:01.000Z","updated_at":"2024-11-28T02:24:09.000Z","dependencies_parsed_at":"2024-05-13T06:37:15.539Z","dependency_job_id":null,"html_url":"https://github.com/passageidentity/example-flutter","commit_stats":null,"previous_names":["passageidentity/example-flutter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passageidentity%2Fexample-flutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passageidentity%2Fexample-flutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passageidentity%2Fexample-flutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passageidentity%2Fexample-flutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passageidentity","download_url":"https://codeload.github.com/passageidentity/example-flutter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243663201,"owners_count":20327299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter","flutter-apps","flutter-demo","flutter-examples","flutter-web","passkeys","passkeys-demo"],"created_at":"2024-11-20T21:05:50.047Z","updated_at":"2025-12-29T17:53:57.819Z","avatar_url":"https://github.com/passageidentity.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://storage.googleapis.com/passage-docs/passage-logo-gradient.svg\" alt=\"Passage logo\" style=\"width:250px;\"/\u003e\n\n# Example Flutter App with Passage Auth\n\n### 🔑 The easiest way to get passkeys up and running for Flutter\n\n[Passage](https://passage.id/) and the [Passage Flutter SDK](https://github.com/passageidentity/passage-flutter) were built to make passkey authentication as fast, simple, and secure as possible. This example application is a great place to start. Before using Passage in your own Flutter app, you can use this example app to:\n\n- Plug in your own Passage app credentials to see passkeys in action\n- Learn basic implementation of the Passage Flutter SDK\n\nA successful registration flow will look like this:\n\n\u003cimg src=\"https://storage.googleapis.com/passage-docs/passage-flutter-example.png\" alt=\"Passage Flutter Example\" /\u003e\n\n\n## Requirements\n\n- Android Studio Electric Eel or newer\n- Xcode 14 or newer\n- A Passage account and Passage app (you can register for a free account [here](https://passage.id/))\n- Completed setup of\n  - Associated Domains file (iOS) ([view instructions](https://docs.passage.id/mobile/ios/add-passage#step-1-publish-associated-domains-file))\n  - Asset Links file (Android) ([view instructions](https://docs.passage.id/mobile/android/add-passage#step-1-publish-digital-asset-links-file))\n  - Key hash registration (Android) ([view instructions](https://docs.passage.id/mobile/android/add-passage#step-2-register-your-android-app-with-passage))\n\n## Installation\n\n```sh\nflutter pub add passage_flutter\n```\n\u003cbr\u003e\n\n## Configuration\nTo get this example Flutter app working with your Passage account/app, you'll need to swap out the placeholder authentication origin with your own. Learn more about Passage auth origins [here](https://docs.passage.id/console-administration/apps#app-core-settings).\n\n\n### iOS\nYou'll need to replace `YOUR_AUTH_ORIGIN` in the Associated Domains file ([found here](https://github.com/passageidentity/example-flutter/blob/main/ios/Runner/Runner.entitlements)).\n```xml\n\u003cplist version=\"1.0\"\u003e\n  \u003cdict\u003e\n    \u003ckey\u003ecom.apple.developer.associated-domains\u003c/key\u003e\n    \u003carray\u003e\n      \u003cstring\u003ewebcredentials:YOUR_AUTH_ORIGIN\u003c/string\u003e\n      \u003cstring\u003eapplinks:YOUR_AUTH_ORIGIN\u003c/string\u003e\n    \u003c/array\u003e\n  \u003c/dict\u003e\n\u003c/plist\u003e\n```\n\n### Android\n\nIn the `strings.xml` file ([found here](https://github.com/passageidentity/example-flutter/blob/main/android/app/src/main/res/values/strings.xml)) replace `YOUR_AUTH_ORIGIN` with your app’s auth origin.\n\n```xml\n\u003cresources\u003e\n    \u003c!-- Required Passage app settings --\u003e\n    \u003cstring name=\"passage_auth_origin\"\u003eYOUR_APP_ORIGIN\u003c/string\u003e\n    ...\n\u003c/resources\u003e\n```\n\n### Web\n\nWhen you're running the web app locally you'll want to make sure your [Passage app auth origin](https://docs.passage.id/console-administration/apps#app-core-settings) and [Flutter web app port](https://www.kindacode.com/snippet/how-to-run-flutter-web-with-a-custom-port/) are set to the same localhost.\n\n\n### Final step\nLastly, replace `YOUR_APP_ID` in the `passage_state_container.dart` file [here](https://github.com/passageidentity/example-flutter/blob/main/lib/state/passage_state_container.dart).\n\n```dart\n_passage = PassageFlutter('YOUR_APP_ID');\n```\n\n\n## 🚀 Run the app!\n\nIf all of the configuration was setup correctly, you should be able to run this application in the simulator or a real device!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassageidentity%2Fexample-flutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpassageidentity%2Fexample-flutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpassageidentity%2Fexample-flutter/lists"}