{"id":15723462,"url":"https://github.com/lukesthl/expo-lucia-auth-example","last_synced_at":"2025-04-19T12:05:00.422Z","repository":{"id":230928878,"uuid":"769903134","full_name":"lukesthl/expo-lucia-auth-example","owner":"lukesthl","description":"lucia-auth example built with expo, hono, drizzle (cloudflare d1) and tamagui","archived":false,"fork":false,"pushed_at":"2024-04-27T09:59:31.000Z","size":884,"stargazers_count":82,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-24T10:49:24.098Z","etag":null,"topics":["cloudflare-d1","expo","hono","lucia-auth","sqlite","tamagui"],"latest_commit_sha":null,"homepage":"https://expo-lucia-auth-example-web.pages.dev/","language":"TypeScript","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/lukesthl.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":"2024-03-10T11:49:01.000Z","updated_at":"2025-03-24T02:41:47.000Z","dependencies_parsed_at":"2024-04-01T16:56:15.756Z","dependency_job_id":"14002238-450e-4cbb-9ee9-07def1a942e9","html_url":"https://github.com/lukesthl/expo-lucia-auth-example","commit_stats":null,"previous_names":["lukesthl/expo-lucia-auth-example"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukesthl%2Fexpo-lucia-auth-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukesthl%2Fexpo-lucia-auth-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukesthl%2Fexpo-lucia-auth-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lukesthl%2Fexpo-lucia-auth-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lukesthl","download_url":"https://codeload.github.com/lukesthl/expo-lucia-auth-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246156025,"owners_count":20732357,"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":["cloudflare-d1","expo","hono","lucia-auth","sqlite","tamagui"],"created_at":"2024-10-03T22:11:44.493Z","updated_at":"2025-03-30T21:31:49.764Z","avatar_url":"https://github.com/lukesthl.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expo Lucia Auth Example\n\nThis project demonstrates how to use Lucia Auth with Expo, Hono, Drizzle (Cloudflare D1), and Tamagui to create a cross-platform mobile application with authentication capabilities.\n\nSupports iOS, Android, and Web.\n\nFeedback appreciated!\n\n## Preview\n\nhttps://expo-lucia-auth-example-web.pages.dev/\n\n## Features\n\n- OAuth support for Google, Apple and GitHub - easy extensible to other providers\n- Automatic and manual Account Linking with OAuth\n\n## Getting Started\n\n### Installation\n\n1. Install dependencies:\n   ```sh\n   bun install\n   ```\n\n### Running the Project\n\n1. Start the development server with Bun:\n   ```sh\n   bun dev\n   ```\n2. Setup Environment Variables:\n   ```sh\n   cp ./apps/expo/.env.example ./apps/expo/.env\n   cp ./apps/api/.dev.vars.example ./apps/api/.dev.vars\n   ```\n3. Hono:\n   ```sh\n   bun run api\n   ```\n4. Expo:\n   ```sh\n   cd apps/expo\n   bun run ios # or bun run android\n   ```\n\n# Setup OAuth Providers\n\n## GitHub Sign In\n\nhttps://github.com/settings/applications/new\n\nAuthorized callback URL: \u003cYOUR_API_URL\u003e/auth/github/callback  \nReplace `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` in the .dev.vars file.\n\n## Google Sign In\n\nFor iOS / Android: [Setup EAS Build and Submit to App Store](#setup-eas-build-and-submit-to-app-store)\n\nhttps://console.cloud.google.com/apis/credentials\n\niOS:  \nCreate OAuth-Client-ID with the iOS Bundle ID.  \nCopy iOS-URL-Scheme, go to app.json and replace `iosUrlScheme` with your iOS URL scheme.  \nCopy the Client ID and set it as the `EXPO_PUBLIC_GOOGLE_IOS_CLIENT_ID` in the .env file.\n\nWeb:  \nAuthorized JavaScript origins: \u003cYOUR_WEB_URL\u003e  \nAuthorized redirect URIs: \u003cYOUR_API_URL\u003e/auth/google/callback  \nReplace `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` in the .dev.vars file.\n\n## Apple Sign In Setup\n\nFor iOS / Android: [Setup EAS Build and Submit to App Store](#setup-eas-build-and-submit-to-app-store)\n\nGo to https://developer.apple.com/account/resources/authkeys/add\n\nSet a name for the key and enable Sign in with Apple.  \nClick on Configure and select your app.  \nDownload the key.\n\nGo to detail page of the key and copy the Key ID.  \nGet your Team ID from the Membership page.  \nClient ID is your App ID.\n\nWeb/Android:\nCreate a service ID with the App ID and enable Sign in with Apple.\nhttps://developer.apple.com/account/resources/identifiers/list/serviceId  \nSet the redirect URL to \u003cYOUR_API_URL\u003e/auth/apple/callback  \nGet the Identifier from the detail page and set it as the `APPLE_WEB_CLIENT_ID` in the .env file.\n\nEnvironment Variables:\n\n```sh\nAPPLE_CLIENT_ID=com.expoluciaauth.app\nAPPLE_WEB_CLIENT_ID=com.expoluciaauth.web\nAPPLE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----xxx-----END PRIVATE KEY----\nAPPLE_TEAM_ID=YOUR_TEAM_ID\nAPPLE_KEY_ID=YOUR_KEY_ID\n```\n\n## Setup EAS Build and Submit to App Store\n\nFor Android Google Sign In and Apple Sign In you first need to submit your app to the App Store and Google Play Store.\n\n```bash\neas build:configure\n```\n\n```bash\neas build --profile production\n```\n\nPlay Store:\n\n```bash\neas submit --platform android\n```\n\nIf this is your first time submitting to the Play Store via EAS, you first need to create a Google Service Account Key, see https://github.com/expo/fyi/blob/main/creating-google-service-account.md\n\nThe first time you need also do it manually in the Play Console.\nhttps://github.com/expo/fyi/blob/main/first-android-submission.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukesthl%2Fexpo-lucia-auth-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukesthl%2Fexpo-lucia-auth-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukesthl%2Fexpo-lucia-auth-example/lists"}