feat: whyrating - initial project from turbostarter boilerplate
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
---
|
||||
title: Apple
|
||||
description: Configure "Sign in with Apple" for your mobile application.
|
||||
url: /docs/mobile/auth/oauth/apple
|
||||
---
|
||||
|
||||
# Apple
|
||||
|
||||
**"Sign in with Apple"** provides a native, privacy-preserving SSO experience on iOS. Use the system Apple button and the Apple Authentication APIs to sign users in, then verify the identity token on your backend and create a session with your auth server.
|
||||
|
||||
<Callout title="Apple ID authentication is available on iOS only">
|
||||
Native Apple ID authentication is available on iOS only. You are advised to
|
||||
present the official system button (or our custom component - also compliant!)
|
||||
and follow [Apple's Human Interface
|
||||
Guidelines](https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple)
|
||||
for best practices.
|
||||
</Callout>
|
||||
|
||||

|
||||
|
||||
## Why use native Apple ID authentication?
|
||||
|
||||
<Cards>
|
||||
<Card title="First-class native UX">
|
||||
System sheet + official button, aligned with [Apple's Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple) for trust and conversion.
|
||||
</Card>
|
||||
|
||||
<Card title="Privacy-forward">
|
||||
Private relay email and limited data by design, ensuring your users' privacy is protected and compliant with App Store guidelines.
|
||||
</Card>
|
||||
|
||||
<Card title="Fewer passwords">
|
||||
Fast, low-friction sign-in on iOS enabling your users to sign in without the need to remember or create additional passwords.
|
||||
</Card>
|
||||
|
||||
<Card title="Secure by default">
|
||||
JWT verification on the server with [Better Auth](https://www.better-auth.com/docs/authentication/apple), keeping your users' credentials secure.
|
||||
</Card>
|
||||
|
||||
<Card title="Seamless sessions">
|
||||
We exchange Apple credentials for an app session and persist it in the app.
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Requirements
|
||||
|
||||
* Enable the "Sign in with Apple" capability for your bundle identifier in the [Apple Developer Portal](https://developer.apple.com/account/resources/identifiers/list)
|
||||
* Add the entitlement and build with [EAS](/docs/mobile/publishing/checklist) (or configure natively)
|
||||
* Ensure your app's deep link scheme is added to the auth server's [trusted origins configuration](/docs/mobile/auth/configuration)
|
||||
|
||||
Check the [Better Auth documentation](https://www.better-auth.com/docs/authentication/apple) for more details on how to configure all the required keys and certificates.
|
||||
|
||||
## High-level flow
|
||||
|
||||
1. Check availability with `AppleAuthentication.isAvailableAsync()`.
|
||||
2. Render the system `AppleAuthenticationButton` or custom TurboStarter component.
|
||||
3. Call `AppleAuthentication.signInAsync()` requesting `FULL_NAME` and/or `EMAIL` as needed.
|
||||
4. Send the returned `idTokeb` identifier to the API powered by [Better Auth](https://www.better-auth.com/docs/authentication/apple) to verify and establish a session.
|
||||
5. Optionally track credential state with `AppleAuthentication.getCredentialStateAsync(user)`.
|
||||
|
||||
<Callout type="warn" title="Verify on the server">
|
||||
Always verify the JWT signature from `idToken` on your backend using Apple's
|
||||
public keys before creating a session.
|
||||
</Callout>
|
||||
|
||||
For a more in-depth overview of Apple ID authentication—including implementation details, platform caveats, and advanced configuration—see the following resources:
|
||||
|
||||
<Cards>
|
||||
<Card title="Expo AppleAuthentication" href="https://docs.expo.dev/versions/latest/sdk/apple-authentication/" description="docs.expo.dev" />
|
||||
|
||||
<Card title="Login with Apple" href="https://www.better-auth.com/docs/authentication/apple" description="better-auth.com" />
|
||||
|
||||
<Card title="Sign in with Apple" href="https://developer.apple.com/documentation/sign_in_with_apple" description="developer.apple.com" />
|
||||
</Cards>
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: Google
|
||||
description: Configure "Sign in with Google" for your mobile application.
|
||||
url: /docs/mobile/auth/oauth/google
|
||||
---
|
||||
|
||||
# Google
|
||||
|
||||
**"Sign in with Google"** enables a fast account-chooser experience on mobile (especially on Android). Configure your platform credentials, prompt the native account picker, then exchange the returned token on your backend to create a session with your auth server.
|
||||
|
||||
<Callout title="Platform support">
|
||||
On Android, Google Sign‑In uses [Google Identity
|
||||
Services](https://developers.google.com/identity?hl=pl) and integrates with
|
||||
the system account chooser. On iOS, the recommended Expo flow uses
|
||||
[expo-auth-session](https://docs.expo.dev/versions/latest/sdk/auth-session/)
|
||||
with Google for a native, web-based sign-in experience.
|
||||
</Callout>
|
||||
|
||||

|
||||
|
||||
## Why use Google authentication?
|
||||
|
||||
<Cards>
|
||||
<Card title="First-class native UX">
|
||||
Account picker and token storage integrated with the OS for speed and familiarity.
|
||||
</Card>
|
||||
|
||||
<Card title="Seamless across platforms">
|
||||
Android native chooser; iOS polished experience via Expo.
|
||||
</Card>
|
||||
|
||||
<Card title="Secure by default">
|
||||
Tokens are verified server-side with [Better Auth](https://www.better-auth.com/docs/authentication/google) before a session is issued.
|
||||
</Card>
|
||||
|
||||
<Card title="Faster onboarding">
|
||||
Reduce friction with one-tap sign-in and fewer passwords to remember.
|
||||
</Card>
|
||||
|
||||
<Card title="Scalable">
|
||||
Built on [Google Identity Services](https://developers.google.com/identity?hl=pl) and best-practice OAuth flows.
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Requirements
|
||||
|
||||
* Configure [Google Cloud OAuth Client IDs](https://react-native-google-signin.github.io/docs/setting-up/get-config-file) (Android package + SHA-1, iOS bundle ID) in the [Google Cloud Console](https://console.cloud.google.com/)
|
||||
* Build with [EAS](/docs/mobile/publishing/checklist) to ensure native credentials are embedded correctly
|
||||
* Add your app deep link scheme to the auth server's [trusted origins configuration](/docs/mobile/auth/configuration)
|
||||
|
||||
Check the [Better Auth documentation](https://www.better-auth.com/docs/authentication/google) and [`@react-native-google-signin/google-signin` documentation](https://react-native-google-signin.github.io) for steps to configure your server verification, client IDs and more.
|
||||
|
||||
## High-level flow
|
||||
|
||||
1. Configure Google OAuth Client IDs for Android and iOS in [Google Cloud Console](https://console.cloud.google.com/).
|
||||
2. Initialize the Google auth request in your app and render a "Sign in with Google" button.
|
||||
3. Prompt the account chooser; on success you receive an `idToken` and/or `accessToken`.
|
||||
4. Send the tokens to the API powered by [Better Auth](https://www.better-auth.com/docs/authentication/google) to verify and establish a session.
|
||||
5. Persist the session and proceed to the app.
|
||||
|
||||
For a more in-depth overview of Google authentication, including implementation details, platform caveats, and advanced configuration, see the following resources:
|
||||
|
||||
<Cards>
|
||||
<Card title="Use Google Authentication" href="https://docs.expo.dev/guides/google-authentication/" description="docs.expo.dev" />
|
||||
|
||||
<Card title="Login with Google" href="https://www.better-auth.com/docs/authentication/google" description="better-auth.com" />
|
||||
|
||||
<Card title="React Native Google Sign In" href="https://react-native-google-signin.github.io/" description="react-native-google-signin.github.io" />
|
||||
|
||||
<Card title="Authenticate users with Sign in with Google" href="https://developer.android.com/identity/sign-in/credential-manager-siwg" description="developer.android.com" />
|
||||
</Cards>
|
||||
Reference in New Issue
Block a user