You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/docs/docs/modules/skip-auth0/index.md
+298-2Lines changed: 298 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,305 @@ This framework is available at [github.com/skiptools/skip-auth0](https://github.
10
10
:::
11
11
12
12
13
-
This is a free Skip Swift/Kotlin library project containing the following modules:
13
+
[Auth0](https://auth0.com) authentication for Skip apps on both iOS and Android.
14
14
15
-
SkipAuth0
15
+
On iOS this wraps the [Auth0.swift](https://github.com/auth0/Auth0.swift) SDK (v2.18+). On Android, the Swift code is transpiled to Kotlin via Skip Lite and wraps the [Auth0.Android](https://github.com/auth0/Auth0.Android) SDK (v3.14).
1. Create an [Auth0](https://auth0.com) account and tenant.
41
+
2. Create a **Native** application in your Auth0 dashboard.
42
+
3. Note your **Domain**, **Client ID**, and configure the **Allowed Callback URLs** and **Allowed Logout URLs** for both platforms.
43
+
44
+
### iOS Configuration
45
+
46
+
Add your Auth0 domain and client ID to your `Info.plist`, and register the callback URL scheme:
47
+
48
+
```xml
49
+
<key>CFBundleURLTypes</key>
50
+
<array>
51
+
<dict>
52
+
<key>CFBundleURLSchemes</key>
53
+
<array>
54
+
<string>YOUR_BUNDLE_ID</string>
55
+
</array>
56
+
</dict>
57
+
</array>
58
+
```
59
+
60
+
In your Auth0 dashboard, add the callback URL: `YOUR_BUNDLE_ID://YOUR_AUTH0_DOMAIN/ios/YOUR_BUNDLE_ID/callback`
61
+
62
+
### Android Configuration
63
+
64
+
Add your Auth0 domain and scheme to your `AndroidManifest.xml` via Gradle manifest placeholders. In the test target's `Skip/skip.yml` this is configured as:
| `tokenType` | `String?` | Token type (typically `"Bearer"`) |
285
+
| `expiresAt` | `Date?` | When the access token expires |
286
+
| `scope` | `String?` | Granted OAuth scopes |
287
+
288
+
### Auth0Error
289
+
290
+
| Case | Description |
291
+
|---|---|
292
+
| `.notConfigured` | `configure(_:)` has not been called |
293
+
| `.missingPresenter` | A platform presenter is required |
294
+
| `.webAuthFailed(String)` | The authentication flow failed |
295
+
296
+
## Limitations
297
+
298
+
:::warning
299
+
The following features are **not yet available** in the Skip cross-platform wrapper:
300
+
:::
301
+
> - **Sign up** (user registration) — Available on iOS via the native Auth0.swift SDK. On Android, use the Auth0 Universal Login which includes sign-up, or call the Auth0 Authentication API directly via `#if SKIP` blocks.
302
+
> - **Password reset** — Use the Universal Login page which includes a "Forgot Password" link, or use the native SDKs directly.
303
+
> - **User profile** (`/userinfo` endpoint) — Not yet wrapped. Use the `idToken` JWT to decode user info client-side, or call the endpoint directly.
304
+
> - **Token revocation** — Not yet wrapped. Use the native SDKs or call the Auth0 API directly.
305
+
> - **Social / OAuth login** — Supported through Universal Login (the browser-based flow handles all identity providers configured in your Auth0 dashboard).
306
+
> - **MFA (Multi-Factor Authentication)** — Handled by Universal Login when configured in your Auth0 dashboard. Programmatic MFA enrollment/verification is not wrapped.
307
+
> - **Credentials persistence** — On Android, `saveCredentials` is not yet supported through the cross-platform API. Use `hasValidCredentials` and `clearCredentials` to manage stored state. On iOS, the full `CredentialsManager` is available via the native Auth0 SDK.
308
+
309
+
:::note
310
+
On iOS, the full [Auth0.swift](https://github.com/auth0/Auth0.swift) API is available since SkipAuth0 re-exports it. Features like sign up, password reset, user profile, and token revocation work natively on iOS. The limitations above apply only to the cross-platform API surface on Android.
0 commit comments