From 633146285d4567ab611e9ca5f609811992b3a73d Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Sat, 11 Jul 2026 00:45:52 +0530 Subject: [PATCH] docs(partners): add OAuth server section and Sign in with your product guide --- .optimize-cache.json | 20 + src/routes/docs/Sidebar.svelte | 7 + .../docs/partners/oauth-server/+layout.svelte | 64 + .../docs/partners/oauth-server/+page.markdoc | 68 + .../oauth-server/authorization/+page.markdoc | 522 ++++++ .../oauth-server/clients/+page.markdoc | 1578 +++++++++++++++++ .../oauth-server/device-flow/+page.markdoc | 171 ++ .../oauth-server/quick-start/+page.markdoc | 468 +++++ .../oauth-server/scopes/+page.markdoc | 40 + .../sign-in-with-your-product/+layout.svelte | 10 + .../sign-in-with-your-product/+layout.ts | 11 + .../sign-in-with-your-product/+page.ts | 5 + .../step-1/+page.markdoc | 50 + .../step-2/+page.markdoc | 55 + .../step-3/+page.markdoc | 74 + .../step-4/+page.markdoc | 86 + .../step-5/+page.markdoc | 219 +++ .../step-6/+page.markdoc | 130 ++ .../step-7/+page.markdoc | 57 + .../oauth-server/tokens/+page.markdoc | 348 ++++ .../dark/oauth2-server-apps-empty.avif | Bin 0 -> 25267 bytes .../dark/oauth2-server-apps-list.avif | Bin 0 -> 26947 bytes .../dark/oauth2-server-create-app.avif | Bin 0 -> 24357 bytes .../dark/oauth2-server-discovery.avif | Bin 0 -> 38896 bytes .../dark/oauth2-server-secret-created.avif | Bin 0 -> 16069 bytes .../dark/oauth2-server-settings-disabled.avif | Bin 0 -> 22789 bytes .../dark/oauth2-server-settings.avif | Bin 0 -> 31883 bytes .../dark/oauth2-server-token-lifetimes.avif | Bin 0 -> 38664 bytes .../oauth-server/guide/taskflow-consent.avif | Bin 0 -> 15748 bytes .../oauth-server/guide/taskflow-login.avif | Bin 0 -> 9317 bytes .../oauth-server/guide/vantage-dashboard.avif | Bin 0 -> 16679 bytes .../oauth-server/guide/vantage-landing.avif | Bin 0 -> 27710 bytes .../oauth2-server-apps-empty.avif | Bin 0 -> 24515 bytes .../oauth-server/oauth2-server-apps-list.avif | Bin 0 -> 25399 bytes .../oauth2-server-create-app.avif | Bin 0 -> 22852 bytes .../oauth-server/oauth2-server-discovery.avif | Bin 0 -> 35800 bytes .../oauth2-server-secret-created.avif | Bin 0 -> 15143 bytes .../oauth2-server-settings-disabled.avif | Bin 0 -> 21061 bytes .../oauth-server/oauth2-server-settings.avif | Bin 0 -> 29507 bytes .../oauth2-server-token-lifetimes.avif | Bin 0 -> 35339 bytes 40 files changed, 3983 insertions(+) create mode 100644 src/routes/docs/partners/oauth-server/+layout.svelte create mode 100644 src/routes/docs/partners/oauth-server/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/authorization/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/clients/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/device-flow/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/quick-start/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/scopes/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.svelte create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.ts create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/+page.ts create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-1/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-2/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-3/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-4/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-5/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-6/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-7/+page.markdoc create mode 100644 src/routes/docs/partners/oauth-server/tokens/+page.markdoc create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-apps-empty.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-apps-list.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-create-app.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-discovery.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-secret-created.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-settings-disabled.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-settings.avif create mode 100644 static/images/docs/oauth-server/dark/oauth2-server-token-lifetimes.avif create mode 100644 static/images/docs/oauth-server/guide/taskflow-consent.avif create mode 100644 static/images/docs/oauth-server/guide/taskflow-login.avif create mode 100644 static/images/docs/oauth-server/guide/vantage-dashboard.avif create mode 100644 static/images/docs/oauth-server/guide/vantage-landing.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-apps-empty.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-apps-list.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-create-app.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-discovery.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-secret-created.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-settings-disabled.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-settings.avif create mode 100644 static/images/docs/oauth-server/oauth2-server-token-lifetimes.avif diff --git a/.optimize-cache.json b/.optimize-cache.json index 854da251a0d..bfba95b3ccf 100644 --- a/.optimize-cache.json +++ b/.optimize-cache.json @@ -1586,6 +1586,26 @@ "static/images/docs/network/edges-map.png": "12ecc1ea200905ba75eb7cfd17055a156fd51fccf746869a1058f923dfd7ac1b", "static/images/docs/network/pops-map.png": "205ead599703cf47d0df316db8fcc4f48d5eed01508109fc740d17914275e9ab", "static/images/docs/network/regions-map.png": "c65f1423ab19c3048bf8bf93117e8f2e1d13a2bc705c00307de7ee821e5668a1", + "static/images/docs/oauth-server/dark/oauth2-server-apps-empty.png": "b81617a77c6489bc93cfe3c118c2fd075eebda850fc5803cba4b1b62792269f1", + "static/images/docs/oauth-server/dark/oauth2-server-apps-list.png": "a0b1a9bcc5708bb48f7d4684d754cfc8af8e666f808e11d00fc42182ee7ccf6e", + "static/images/docs/oauth-server/dark/oauth2-server-create-app.png": "8237a7890f6246661086cf80b7eb6cdbf0b27b4bc1a5cbcf485209ef9a27dfcf", + "static/images/docs/oauth-server/dark/oauth2-server-discovery.png": "e688439f87c4ae73086b76ee094e036d5bddb14b9431aaad5901d281ab3ca413", + "static/images/docs/oauth-server/dark/oauth2-server-secret-created.png": "d675fe574706d58b224ce823c8904145482472f64ab940a8bb37b92fcc33008e", + "static/images/docs/oauth-server/dark/oauth2-server-settings-disabled.png": "ad51d531eaa3736839859097c024bca41a28d1339ceef773e376c06936e040ee", + "static/images/docs/oauth-server/dark/oauth2-server-settings.png": "18da0340416739f803b8c04d66c191e92e7eafa70cd301acb1e269d8dd5a0c81", + "static/images/docs/oauth-server/dark/oauth2-server-token-lifetimes.png": "46743e2f0a3e8c126d590809668a37c2beb1f1c5483002839d9a15eca9e110d4", + "static/images/docs/oauth-server/guide/taskflow-consent.png": "5c4f4cbc6b225c60d5d6e2f1616abe45f0e6b66a5014438961fca98db349bd18", + "static/images/docs/oauth-server/guide/taskflow-login.png": "5d0013b31b211efe4d3a2f6a9f224a5b547d3ef1370e507b9a183bb276fc90e1", + "static/images/docs/oauth-server/guide/vantage-dashboard.png": "b2e95c34ec9c19be090e5f3384e0c3278dd840059b3f015ccdb13a16c135dde1", + "static/images/docs/oauth-server/guide/vantage-landing.png": "dc597717bcc93de02b2e5336a0f05d743ea66e6d91cef40fbdc61f8380577bec", + "static/images/docs/oauth-server/oauth2-server-apps-empty.png": "6f7b5c2021df2db7a3a1c4da3dfcf9b2ff119e98450e755eb64f03263030da0a", + "static/images/docs/oauth-server/oauth2-server-apps-list.png": "e3f38509e45e502f742e7532ae1a19bdd35b0891821b6a81601b7960ff16b38c", + "static/images/docs/oauth-server/oauth2-server-create-app.png": "182c207475ebd8f386d3d1ec522058f23f59cb47d85f4b681889d0dd08eb8cd8", + "static/images/docs/oauth-server/oauth2-server-discovery.png": "5b75f8e780cac92a68fda24a9686ba89ce83d89ac66e5f651428b4c62bb81cbd", + "static/images/docs/oauth-server/oauth2-server-secret-created.png": "5a6d48595018a8faaa26aeafe099c3dda23613a35e49884decbecb0029449168", + "static/images/docs/oauth-server/oauth2-server-settings-disabled.png": "648091d9d81308ab93dd456f172fa1c1977c2fbce9b8aa03893398bdefe10595", + "static/images/docs/oauth-server/oauth2-server-settings.png": "914aa6511caedb568f199eacef837366c523f78125c551afa992e39098707431", + "static/images/docs/oauth-server/oauth2-server-token-lifetimes.png": "895bf62c7f5171c8f244fda37b516760266c47447f2c66c93c3c812139823b96", "static/images/docs/platform/add-platform.png": "5a05bb9d75a8d5270bfa5e67df7e6de20a9fad174476a112b5bdab72e7bdad30", "static/images/docs/platform/create-api-key.png": "7661b3845e13704643f8ff4f763faa8e61efb90878c3ffa7466ece0910b8ecab", "static/images/docs/platform/create-webhook.png": "77e08173da6ac534524e025433cf75e532d853a135944a7c6ba2278357d88b2d", diff --git a/src/routes/docs/Sidebar.svelte b/src/routes/docs/Sidebar.svelte index 1dd3ea69ec9..b1c7a1edfac 100644 --- a/src/routes/docs/Sidebar.svelte +++ b/src/routes/docs/Sidebar.svelte @@ -101,6 +101,13 @@ href: '/docs/partners/project', icon: 'icon-briefcase', isParent: true + }, + { + label: 'OAuth server', + href: '/docs/partners/oauth-server', + icon: 'icon-key', + isParent: true, + new: isNewUntil('31 Aug 2026') } ] }, diff --git a/src/routes/docs/partners/oauth-server/+layout.svelte b/src/routes/docs/partners/oauth-server/+layout.svelte new file mode 100644 index 00000000000..409e8402dca --- /dev/null +++ b/src/routes/docs/partners/oauth-server/+layout.svelte @@ -0,0 +1,64 @@ + + + + + + diff --git a/src/routes/docs/partners/oauth-server/+page.markdoc b/src/routes/docs/partners/oauth-server/+page.markdoc new file mode 100644 index 00000000000..b3ec80274e8 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/+page.markdoc @@ -0,0 +1,68 @@ +--- +layout: article +title: OAuth server +description: Turn your Appwrite project into an OAuth 2.1 and OpenID Connect provider so third-party apps can sign in with your product. +back: /docs +--- + +Appwrite can act as an **OAuth 2.1 and OpenID Connect provider**. When you enable the OAuth server on a project, third-party apps register as clients, send your users to a consent screen you host, and receive tokens your project issues. The users in your project become an identity provider that any standards-compliant OAuth or OIDC library can integrate with, the same way apps integrate with "Sign in with Google" or "Sign in with GitHub". + +{% only_dark %} +![OAuth2 server settings in the Appwrite Console](/images/docs/oauth-server/dark/oauth2-server-settings.avif) +{% /only_dark %} +{% only_light %} +![OAuth2 server settings in the Appwrite Console](/images/docs/oauth-server/oauth2-server-settings.avif) +{% /only_light %} + +This is the inverse of the [OAuth providers](/docs/partners/project/oauth) feature. OAuth providers let your users sign in to your project *with* an external service. The OAuth server lets external services sign their users in *with your project*. + +# How it works {% #how-it-works %} + +The OAuth server has three moving parts. + +1. **The authorization server.** Enabling the server on your project exposes a full set of OIDC endpoints: authorization, token, userinfo, discovery, JWKS, revocation, and introspection. A keypair is generated for your project on first enable and used to sign tokens. +2. **Clients.** Each third-party app registers as a [client](/docs/partners/oauth-server/clients), either confidential (it has a backend that can hold a secret) or public (a browser or mobile app that cannot). Clients declare the redirect URIs they are allowed to return to. +3. **The consent screen.** You host a consent screen at an authorization URL you configure. When a user authorizes a client, Appwrite redirects them to your screen, your screen confirms the grant, and Appwrite issues an authorization code the client exchanges for tokens. + +The flow follows the OAuth 2.1 authorization code grant with PKCE, plus the OpenID Connect layer for identity. Because the server is spec-compliant, integrators can point any OAuth or OIDC client library at your project's discovery URL and it works without Appwrite-specific code. + +# Standards support {% #standards %} + +The server implements the current OAuth 2.1 and OpenID Connect security practices: + +- **Authorization code grant with PKCE.** PKCE uses `S256` and is required for public clients. The password grant and the implicit access-token grant are not supported. +- **Refresh tokens with rotation.** Every refresh issues a new refresh token and invalidates the previous one. Reusing an old refresh token revokes the whole token family. +- **Exact redirect URI matching.** A returned redirect URI must exactly match a registered one, with a narrow loopback-port exception for public native clients (RFC 8252). +- **OpenID Connect.** The server issues `id_token` values, serves a discovery document at `/.well-known/openid-configuration`, and publishes signing keys at `/.well-known/jwks.json`. +- **Device authorization grant** (RFC 8628) for input-constrained devices like TVs and CLIs. + +# Concepts {% #concepts %} + +{% cards %} +{% cards_item href="/docs/partners/oauth-server/quick-start" title="Quick start" %} +Enable the server, register a client, and run your first sign-in end to end. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/clients" title="Clients" %} +Register confidential and public OAuth clients and manage their secrets. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/authorization" title="Authorization" %} +The authorization code flow, PKCE, and hosting your own consent screen. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/tokens" title="Tokens" %} +Access, refresh, and ID tokens, their lifetimes, introspection, and revocation. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/scopes" title="Scopes" %} +The built-in OpenID scopes and the custom scopes your clients can request. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/device-flow" title="Device flow" %} +Authorize TVs, CLIs, and other input-constrained devices. +{% /cards_item %} +{% /cards %} + +# Guide {% #guide %} + +{% cards %} +{% cards_item href="/docs/partners/oauth-server/sign-in-with-your-product/step-1" title="Sign in with your product" %} +Build a full sign-in with your product experience end to end, from the consent screen to the token exchange. +{% /cards_item %} +{% /cards %} diff --git a/src/routes/docs/partners/oauth-server/authorization/+page.markdoc b/src/routes/docs/partners/oauth-server/authorization/+page.markdoc new file mode 100644 index 00000000000..be7872d8d97 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/authorization/+page.markdoc @@ -0,0 +1,522 @@ +--- +layout: article +title: Authorization +description: The OAuth 2.1 authorization code flow with PKCE, and how to host a consent screen for your Appwrite OAuth server. +back: /docs/partners/oauth-server +--- + +Authorization is the step where a user allows a client to act on their behalf. Appwrite's OAuth server uses the **authorization code flow with PKCE**, the flow the OAuth 2.1 draft recommends for every client type. This page covers the flow end to end and how to host the consent screen it depends on. + +# The authorization code flow {% #flow %} + +1. The client sends the user to the **authorization endpoint** with its client ID, a registered redirect URI, `response_type=code`, and the scopes it wants. +2. Appwrite checks for a user session on your project. With a session, it creates a grant and redirects to your **authorization URL** with a `grant_id`. Without one, it redirects to your authorization URL with the full request so you can sign the user in first. +3. Your **consent screen** loads the grant, shows the user what is being requested, and approves or rejects it. +4. On approval, Appwrite redirects back to the client's redirect URI with a short-lived authorization `code`. +5. The client exchanges the code for tokens at the token endpoint. See [Tokens](/docs/partners/oauth-server/tokens). + +# PKCE {% #pkce %} + +PKCE (Proof Key for Code Exchange) binds an authorization request to the client that started it, so an intercepted code cannot be redeemed by anyone else. The client generates a random `code_verifier`, hashes it with SHA-256 into a `code_challenge`, and sends the challenge on the authorize request. When it later redeems the code, it presents the original verifier, and the server checks that they match. + +The server supports the `S256` challenge method only. PKCE is **always required for public clients**. For confidential clients it is optional and controlled per project by the **Require PKCE** setting, since those clients already authenticate with a secret. + +# Start authorization {% #authorize %} + +Send the user to the authorization endpoint. A public client includes its `code_challenge`; a confidential client includes it when PKCE is enabled. + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.authorize({ + clientId: '', + redirectUri: 'https://example.com', + responseType: 'code', + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '' // optional +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Authorize result = await oauth2.authorize( + clientId: '', + redirectUri: 'https://example.com', + responseType: 'code', + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '', // optional +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Authorize = try await oauth2.authorize( + client_id: "", + redirect_uri: "https://example.com", + response_type: "code", + scope: "", // optional + state: "", // optional + nonce: "", // optional + code_challenge: "", // optional + code_challenge_method: "s256", // optional + prompt: "", // optional + max_age: 0, // optional + authorization_details: "", // optional + resource: "" // optional +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.authorize( + client_id = "", + redirect_uri = "https://example.com", + response_type = "code", + scope = "", // (optional) + state = "", // (optional) + nonce = "", // (optional) + code_challenge = "", // (optional) + code_challenge_method = "s256", // (optional) + prompt = "", // (optional) + max_age = 0, // (optional) + authorization_details = "", // (optional) + resource = "", // (optional) +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.authorize( + "", // client_id + "https://example.com", // redirect_uri + "code", // response_type + "", // scope (optional) + "", // state (optional) + "", // nonce (optional) + "", // code_challenge (optional) + "s256", // code_challenge_method (optional) + "", // prompt (optional) + 0, // max_age (optional) + "", // authorization_details (optional) + "", // resource (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.authorize({ + clientId: '', + redirectUri: 'https://example.com', + responseType: 'code', + scope: '', // optional + state: '', // optional + nonce: '', // optional + codeChallenge: '', // optional + codeChallengeMethod: 's256', // optional + prompt: '', // optional + maxAge: 0, // optional + authorizationDetails: '', // optional + resource: '' // optional +}); + +console.log(result); +``` +{% /multicode %} + +Without a session on the project, Appwrite redirects to your authorization URL with the original request parameters attached. Sign the user in there (with your normal [Appwrite authentication](/docs/products/auth)), then send them back through the authorize endpoint so a grant can be created. + +# Host the consent screen {% #consent %} + +Your authorization URL is a page you host. When Appwrite redirects a signed-in user to it with a `grant_id`, the page reads the grant, presents it, and records the user's decision. The consent endpoints authenticate with the user's session on your project. + +**Load the grant** to see which client, scopes, and resources are being requested, then render your UI. + +{% info title="Required scope" %} +Reading a grant requires the `oauth2.read` scope. Approving or rejecting one requires `oauth2.write`. +{% /info %} + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.getGrant({ + grantId: '' +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Grant result = await oauth2.getGrant( + grantId: '', +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Grant = try await oauth2.getGrant( + grant_id: "" +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.getGrant( + grant_id = "", +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.getGrant( + "", // grant_id + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.getGrant({ + grantId: '' +}); + +console.log(result); +``` +{% /multicode %} + +**Approve** the grant to continue. Appwrite responds with the redirect URL back to the client, carrying the authorization code. Send the user there. + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.approve({ + grantId: '', + authorizationDetails: '', // optional + scope: '' // optional +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Approve result = await oauth2.approve( + grantId: '', + authorizationDetails: '', // optional + scope: '', // optional +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Approve = try await oauth2.approve( + grant_id: "", + authorization_details: "", // optional + scope: "" // optional +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.approve( + grant_id = "", + authorization_details = "", // (optional) + scope = "", // (optional) +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.approve( + "", // grant_id + "", // authorization_details (optional) + "", // scope (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.approve({ + grantId: '', + authorizationDetails: '', // optional + scope: '' // optional +}); + +console.log(result); +``` +{% /multicode %} + +**Reject** the grant if the user declines. Appwrite responds with the redirect URL carrying an error instead of a code. + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.reject({ + grantId: '' +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Reject result = await oauth2.reject( + grantId: '', +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Reject = try await oauth2.reject( + grant_id: "" +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.reject( + grant_id = "", +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.reject( + "", // grant_id + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.reject({ + grantId: '' +}); + +console.log(result); +``` +{% /multicode %} + +# Redirect URI matching {% #redirect-uris %} + +The `redirect_uri` on an authorization request must exactly match one of the client's registered redirect URIs, character for character. This is what stops an attacker from redirecting a code to a URL they control. + +There is one narrow exception. For **public** clients, an `http` loopback address (`localhost`, `127.0.0.1`, or `[::1]`) matches on everything except the port. Native and CLI apps bind an unpredictable local port at runtime and cannot register it ahead of time (RFC 8252). Confidential clients get no such exception; their redirect URIs must match exactly, port included. diff --git a/src/routes/docs/partners/oauth-server/clients/+page.markdoc b/src/routes/docs/partners/oauth-server/clients/+page.markdoc new file mode 100644 index 00000000000..d5e364907f6 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/clients/+page.markdoc @@ -0,0 +1,1578 @@ +--- +layout: article +title: Clients +description: Register confidential and public OAuth clients against your Appwrite project's OAuth server and manage their secrets. +back: /docs/partners/oauth-server +--- + +A **client** is a third-party app that authenticates users through your project's OAuth server. Each client registers the redirect URIs it is allowed to return to, and, depending on its type, receives a client secret. Clients are managed from the **Auth > OAuth2 server > Apps** tab in the Console, or with a [Server SDK](/docs/sdks#server). + +{% only_dark %} +![OAuth2 clients list in the Appwrite Console](/images/docs/oauth-server/dark/oauth2-server-apps-list.avif) +{% /only_dark %} +{% only_light %} +![OAuth2 clients list in the Appwrite Console](/images/docs/oauth-server/oauth2-server-apps-list.avif) +{% /only_light %} + +# Confidential and public clients {% #client-types %} + +Every client is one of two types, and the difference comes down to a single question: can the app keep a secret? + +A **confidential** client runs code on a server the developer controls, so it can store a `client_secret` that users never see. It authenticates to the token endpoint with that secret, which lets your server prove which client is calling. A **public** client runs entirely on the user's device (a single-page app, a native mobile app, a CLI), where any embedded secret would ship to the user and could be read. Public clients receive no secret and rely on PKCE instead. + +{% only_dark %} +![Token lifetimes for confidential and public clients](/images/docs/oauth-server/dark/oauth2-server-token-lifetimes.avif) +{% /only_dark %} +{% only_light %} +![Token lifetimes for confidential and public clients](/images/docs/oauth-server/oauth2-server-token-lifetimes.avif) +{% /only_light %} + +The type a client uses changes what it can do: + +| | Confidential | Public | +| --- | --- | --- | +| Client secret | Issued, sent on token requests | None issued | +| PKCE | Optional (configurable per project) | Always required | +| Token introspection | Allowed | Not allowed | +| Default access token lifetime | 8 hours | 1 hour | +| Default refresh token lifetime | 365 days | 30 days | + +Choose confidential whenever the app has a backend. It is the safer default: the token exchange is protected by a secret, tokens never touch the browser, and sessions can last longer. Reserve public for apps that genuinely have no server to hold a secret. + +# Register a client {% #register %} + +Create a client from the **Apps** tab, or with the `create` method of the `Apps` service. Registering a confidential client returns its secret once. Store it immediately, because the full value cannot be retrieved again. + +{% only_dark %} +![Create an OAuth2 client dialog](/images/docs/oauth-server/dark/oauth2-server-create-app.avif) +{% /only_dark %} +{% only_light %} +![Create an OAuth2 client dialog](/images/docs/oauth-server/oauth2-server-create-app.avif) +{% /only_light %} + +{% info title="Required scope" %} +The API key used for this call needs the `apps.write` scope. +{% /info %} + +{% multicode %} +```server-nodejs +import { Client, Apps } from 'node-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.create({ + appId: '', + name: '', + redirectUris: [], + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: 'public', // optional + deviceFlow: false, // optional + teamId: '' // optional +}); +``` +```server-deno +import { Client, Apps } from "npm:node-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.create({ + appId: '', + name: '', + redirectUris: [], + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: 'public', // optional + deviceFlow: false, // optional + teamId: '' // optional +}); +``` +```server-php +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$apps = new Apps($client); + +$result = $apps->create( + appId: '', + name: '', + redirectUris: [], + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: 'public', // optional + deviceFlow: false, // optional + teamId: '' // optional +);``` +``` +```server-python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +apps = Apps(client) + +result: App = apps.create( + app_id = '', + name = '', + redirect_uris = [], + description = '', # optional + client_uri = 'https://example.com', # optional + logo_uri = 'https://example.com', # optional + privacy_policy_url = 'https://example.com', # optional + terms_url = 'https://example.com', # optional + contacts = [], # optional + tagline = '', # optional + tags = [], # optional + images = [], # optional + support_url = 'https://example.com', # optional + data_deletion_url = 'https://example.com', # optional + post_logout_redirect_uris = [], # optional + enabled = False, # optional + type = 'public', # optional + device_flow = False, # optional + team_id = '' # optional +) + +print(result.model_dump()) +``` +```server-ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +apps = Apps.new(client) + +result = apps.create( + app_id: '', + name: '', + redirect_uris: [], + description: '', # optional + client_uri: 'https://example.com', # optional + logo_uri: 'https://example.com', # optional + privacy_policy_url: 'https://example.com', # optional + terms_url: 'https://example.com', # optional + contacts: [], # optional + tagline: '', # optional + tags: [], # optional + images: [], # optional + support_url: 'https://example.com', # optional + data_deletion_url: 'https://example.com', # optional + post_logout_redirect_uris: [], # optional + enabled: false, # optional + type: 'public', # optional + device_flow: false, # optional + team_id: '' # optional +) +``` +```server-dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Apps apps = Apps(client); + +App result = await apps.create( + appId: '', + name: '', + redirectUris: [], + description: '', // (optional) + clientUri: 'https://example.com', // (optional) + logoUri: 'https://example.com', // (optional) + privacyPolicyUrl: 'https://example.com', // (optional) + termsUrl: 'https://example.com', // (optional) + contacts: [], // (optional) + tagline: '', // (optional) + tags: [], // (optional) + images: [], // (optional) + supportUrl: 'https://example.com', // (optional) + dataDeletionUrl: 'https://example.com', // (optional) + postLogoutRedirectUris: [], // (optional) + enabled: false, // (optional) + type: 'public', // (optional) + deviceFlow: false, // (optional) + teamId: '', // (optional) +); +``` +```server-dotnet +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Apps apps = new Apps(client); + +App result = await apps.Create( + appId: "", + name: "", + redirectUris: new List(), + description: "", // optional + clientUri: "https://example.com", // optional + logoUri: "https://example.com", // optional + privacyPolicyUrl: "https://example.com", // optional + termsUrl: "https://example.com", // optional + contacts: new List(), // optional + tagline: "", // optional + tags: new List(), // optional + images: new List(), // optional + supportUrl: "https://example.com", // optional + dataDeletionUrl: "https://example.com", // optional + postLogoutRedirectUris: new List(), // optional + enabled: false, // optional + type: "public", // optional + deviceFlow: false, // optional + teamId: "" // optional +);``` +``` +```server-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val apps = Apps(client) + +val response = apps.create( + appId = "", + name = "", + redirectUris = listOf(), + description = "", // optional + clientUri = "https://example.com", // optional + logoUri = "https://example.com", // optional + privacyPolicyUrl = "https://example.com", // optional + termsUrl = "https://example.com", // optional + contacts = listOf(), // optional + tagline = "", // optional + tags = listOf(), // optional + images = listOf(), // optional + supportUrl = "https://example.com", // optional + dataDeletionUrl = "https://example.com", // optional + postLogoutRedirectUris = listOf(), // optional + enabled = false, // optional + type = "public", // optional + deviceFlow = false, // optional + teamId = "" // optional +) +``` +```server-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Apps apps = new Apps(client); + +apps.create( + "", // appId + "", // name + List.of(), // redirectUris + "", // description (optional) + "https://example.com", // clientUri (optional) + "https://example.com", // logoUri (optional) + "https://example.com", // privacyPolicyUrl (optional) + "https://example.com", // termsUrl (optional) + List.of(), // contacts (optional) + "", // tagline (optional) + List.of(), // tags (optional) + List.of(), // images (optional) + "https://example.com", // supportUrl (optional) + "https://example.com", // dataDeletionUrl (optional) + List.of(), // postLogoutRedirectUris (optional) + false, // enabled (optional) + "public", // type (optional) + false, // deviceFlow (optional) + "", // teamId (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` +```server-swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let apps = Apps(client) + +let app = try await apps.create( + appId: "", + name: "", + redirectUris: [], + description: "", // optional + clientUri: "https://example.com", // optional + logoUri: "https://example.com", // optional + privacyPolicyUrl: "https://example.com", // optional + termsUrl: "https://example.com", // optional + contacts: [], // optional + tagline: "", // optional + tags: [], // optional + images: [], // optional + supportUrl: "https://example.com", // optional + dataDeletionUrl: "https://example.com", // optional + postLogoutRedirectUris: [], // optional + enabled: false, // optional + type: "public", // optional + deviceFlow: false, // optional + teamId: "" // optional +) + +``` +```server-go +package main + +import ( + "fmt" + "github.com/repoowner/reponame/client" + "github.com/repoowner/reponame/apps" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + appwrite.WithKey("") +) + +service := apps.New(client) + +response, error := service.Create( + "", + "", + []string{}, + apps.WithCreateDescription(""), + apps.WithCreateClientUri("https://example.com"), + apps.WithCreateLogoUri("https://example.com"), + apps.WithCreatePrivacyPolicyUrl("https://example.com"), + apps.WithCreateTermsUrl("https://example.com"), + apps.WithCreateContacts([]string{}), + apps.WithCreateTagline(""), + apps.WithCreateTags([]string{}), + apps.WithCreateImages([]string{}), + apps.WithCreateSupportUrl("https://example.com"), + apps.WithCreateDataDeletionUrl("https://example.com"), + apps.WithCreatePostLogoutRedirectUris([]string{}), + apps.WithCreateEnabled(false), + apps.WithCreateType("public"), + apps.WithCreateDeviceFlow(false), + apps.WithCreateTeamId(""), +) +``` +```server-rust +use appwrite::Client; +use appwrite::services::Apps; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let apps = Apps::new(&client); + + let result = apps.create( + "", + "", + vec![], + Some(""), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some(vec![]), // optional + Some(""), // optional + Some(vec![]), // optional + Some(vec![]), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some(vec![]), // optional + Some(false), // optional + Some("public"), // optional + Some(false), // optional + Some("") // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` +{% /multicode %} + +The `type` parameter accepts `confidential` (the default) or `public`. Set `deviceFlow` to `true` to let the client use the [device authorization flow](/docs/partners/oauth-server/device-flow). The branding fields (`logoUri`, `tagline`, `privacyPolicyUrl`, `termsUrl`) appear on the consent screen your users see. + +# Manage client secrets {% #secrets %} + +A confidential client authenticates with a secret. Generate a new secret with the `createSecret` method. The plaintext value is returned only in this response. + +{% only_dark %} +![OAuth2 client secret shown once on creation](/images/docs/oauth-server/dark/oauth2-server-secret-created.avif) +{% /only_dark %} +{% only_light %} +![OAuth2 client secret shown once on creation](/images/docs/oauth-server/oauth2-server-secret-created.avif) +{% /only_light %} + +{% multicode %} +```server-nodejs +import { Client, Apps } from 'node-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.createSecret({ + appId: '' +}); +``` +```server-deno +import { Client, Apps } from "npm:node-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.createSecret({ + appId: '' +}); +``` +```server-php +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$apps = new Apps($client); + +$result = $apps->createSecret( + appId: '' +);``` +``` +```server-python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppSecretPlaintext + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +apps = Apps(client) + +result: AppSecretPlaintext = apps.create_secret( + app_id = '' +) + +print(result.model_dump()) +``` +```server-ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +apps = Apps.new(client) + +result = apps.create_secret( + app_id: '' +) +``` +```server-dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Apps apps = Apps(client); + +AppSecretPlaintext result = await apps.createSecret( + appId: '', +); +``` +```server-dotnet +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Apps apps = new Apps(client); + +AppSecretPlaintext result = await apps.CreateSecret( + appId: "" +);``` +``` +```server-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val apps = Apps(client) + +val response = apps.createSecret( + appId = "" +) +``` +```server-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Apps apps = new Apps(client); + +apps.createSecret( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` +```server-swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let apps = Apps(client) + +let appSecretPlaintext = try await apps.createSecret( + appId: "" +) + +``` +```server-go +package main + +import ( + "fmt" + "github.com/repoowner/reponame/client" + "github.com/repoowner/reponame/apps" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + appwrite.WithKey("") +) + +service := apps.New(client) + +response, error := service.CreateSecret( + "", +) +``` +```server-rust +use appwrite::Client; +use appwrite::services::Apps; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let apps = Apps::new(&client); + + let result = apps.create_secret( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` +{% /multicode %} + +A client can hold more than one secret at a time, which lets you rotate without downtime: create the new secret, deploy it, then delete the old one. Deleting a secret immediately breaks any client still using it, including token refreshes in flight. + +# List clients {% #list %} + +{% info title="Required scope" %} +The API key used for this call needs the `apps.read` scope. +{% /info %} + +{% multicode %} +```server-nodejs +import { Client, Apps } from 'node-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.list({ + queries: [], // optional + total: false // optional +}); +``` +```server-deno +import { Client, Apps } from "npm:node-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.list({ + queries: [], // optional + total: false // optional +}); +``` +```server-php +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$apps = new Apps($client); + +$result = $apps->list( + queries: [], // optional + total: false // optional +);``` +``` +```server-python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import AppsList + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +apps = Apps(client) + +result: AppsList = apps.list( + queries = [], # optional + total = False # optional +) + +print(result.model_dump()) +``` +```server-ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +apps = Apps.new(client) + +result = apps.list( + queries: [], # optional + total: false # optional +) +``` +```server-dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Apps apps = Apps(client); + +AppsList result = await apps.list( + queries: [], // (optional) + total: false, // (optional) +); +``` +```server-dotnet +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Apps apps = new Apps(client); + +AppsList result = await apps.List( + queries: new List(), // optional + total: false // optional +);``` +``` +```server-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val apps = Apps(client) + +val response = apps.list( + queries = listOf(), // optional + total = false // optional +) +``` +```server-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Apps apps = new Apps(client); + +apps.list( + List.of(), // queries (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` +```server-swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let apps = Apps(client) + +let appsList = try await apps.list( + queries: [], // optional + total: false // optional +) + +``` +```server-go +package main + +import ( + "fmt" + "github.com/repoowner/reponame/client" + "github.com/repoowner/reponame/apps" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + appwrite.WithKey("") +) + +service := apps.New(client) + +response, error := service.List( + apps.WithListQueries([]string{}), + apps.WithListTotal(false), +) +``` +```server-rust +use appwrite::Client; +use appwrite::services::Apps; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let apps = Apps::new(&client); + + let result = apps.list( + Some(vec![]), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` +{% /multicode %} + +# Update a client {% #update %} + +Change a client's redirect URIs, branding, or type with the `update` method. + +{% multicode %} +```server-nodejs +import { Client, Apps } from 'node-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.update({ + appId: '', + name: '', + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: 'public', // optional + deviceFlow: false // optional +}); +``` +```server-deno +import { Client, Apps } from "npm:node-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.update({ + appId: '', + name: '', + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: 'public', // optional + deviceFlow: false // optional +}); +``` +```server-php +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$apps = new Apps($client); + +$result = $apps->update( + appId: '', + name: '', + description: '', // optional + clientUri: 'https://example.com', // optional + logoUri: 'https://example.com', // optional + privacyPolicyUrl: 'https://example.com', // optional + termsUrl: 'https://example.com', // optional + contacts: [], // optional + tagline: '', // optional + tags: [], // optional + images: [], // optional + supportUrl: 'https://example.com', // optional + dataDeletionUrl: 'https://example.com', // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: 'public', // optional + deviceFlow: false // optional +);``` +``` +```server-python +from appwrite.client import Client +from appwrite.services.apps import Apps +from appwrite.models import App + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +apps = Apps(client) + +result: App = apps.update( + app_id = '', + name = '', + description = '', # optional + client_uri = 'https://example.com', # optional + logo_uri = 'https://example.com', # optional + privacy_policy_url = 'https://example.com', # optional + terms_url = 'https://example.com', # optional + contacts = [], # optional + tagline = '', # optional + tags = [], # optional + images = [], # optional + support_url = 'https://example.com', # optional + data_deletion_url = 'https://example.com', # optional + enabled = False, # optional + redirect_uris = [], # optional + post_logout_redirect_uris = [], # optional + type = 'public', # optional + device_flow = False # optional +) + +print(result.model_dump()) +``` +```server-ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +apps = Apps.new(client) + +result = apps.update( + app_id: '', + name: '', + description: '', # optional + client_uri: 'https://example.com', # optional + logo_uri: 'https://example.com', # optional + privacy_policy_url: 'https://example.com', # optional + terms_url: 'https://example.com', # optional + contacts: [], # optional + tagline: '', # optional + tags: [], # optional + images: [], # optional + support_url: 'https://example.com', # optional + data_deletion_url: 'https://example.com', # optional + enabled: false, # optional + redirect_uris: [], # optional + post_logout_redirect_uris: [], # optional + type: 'public', # optional + device_flow: false # optional +) +``` +```server-dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Apps apps = Apps(client); + +App result = await apps.update( + appId: '', + name: '', + description: '', // (optional) + clientUri: 'https://example.com', // (optional) + logoUri: 'https://example.com', // (optional) + privacyPolicyUrl: 'https://example.com', // (optional) + termsUrl: 'https://example.com', // (optional) + contacts: [], // (optional) + tagline: '', // (optional) + tags: [], // (optional) + images: [], // (optional) + supportUrl: 'https://example.com', // (optional) + dataDeletionUrl: 'https://example.com', // (optional) + enabled: false, // (optional) + redirectUris: [], // (optional) + postLogoutRedirectUris: [], // (optional) + type: 'public', // (optional) + deviceFlow: false, // (optional) +); +``` +```server-dotnet +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Apps apps = new Apps(client); + +App result = await apps.Update( + appId: "", + name: "", + description: "", // optional + clientUri: "https://example.com", // optional + logoUri: "https://example.com", // optional + privacyPolicyUrl: "https://example.com", // optional + termsUrl: "https://example.com", // optional + contacts: new List(), // optional + tagline: "", // optional + tags: new List(), // optional + images: new List(), // optional + supportUrl: "https://example.com", // optional + dataDeletionUrl: "https://example.com", // optional + enabled: false, // optional + redirectUris: new List(), // optional + postLogoutRedirectUris: new List(), // optional + type: "public", // optional + deviceFlow: false // optional +);``` +``` +```server-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val apps = Apps(client) + +val response = apps.update( + appId = "", + name = "", + description = "", // optional + clientUri = "https://example.com", // optional + logoUri = "https://example.com", // optional + privacyPolicyUrl = "https://example.com", // optional + termsUrl = "https://example.com", // optional + contacts = listOf(), // optional + tagline = "", // optional + tags = listOf(), // optional + images = listOf(), // optional + supportUrl = "https://example.com", // optional + dataDeletionUrl = "https://example.com", // optional + enabled = false, // optional + redirectUris = listOf(), // optional + postLogoutRedirectUris = listOf(), // optional + type = "public", // optional + deviceFlow = false // optional +) +``` +```server-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Apps apps = new Apps(client); + +apps.update( + "", // appId + "", // name + "", // description (optional) + "https://example.com", // clientUri (optional) + "https://example.com", // logoUri (optional) + "https://example.com", // privacyPolicyUrl (optional) + "https://example.com", // termsUrl (optional) + List.of(), // contacts (optional) + "", // tagline (optional) + List.of(), // tags (optional) + List.of(), // images (optional) + "https://example.com", // supportUrl (optional) + "https://example.com", // dataDeletionUrl (optional) + false, // enabled (optional) + List.of(), // redirectUris (optional) + List.of(), // postLogoutRedirectUris (optional) + "public", // type (optional) + false, // deviceFlow (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` +```server-swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let apps = Apps(client) + +let app = try await apps.update( + appId: "", + name: "", + description: "", // optional + clientUri: "https://example.com", // optional + logoUri: "https://example.com", // optional + privacyPolicyUrl: "https://example.com", // optional + termsUrl: "https://example.com", // optional + contacts: [], // optional + tagline: "", // optional + tags: [], // optional + images: [], // optional + supportUrl: "https://example.com", // optional + dataDeletionUrl: "https://example.com", // optional + enabled: false, // optional + redirectUris: [], // optional + postLogoutRedirectUris: [], // optional + type: "public", // optional + deviceFlow: false // optional +) + +``` +```server-go +package main + +import ( + "fmt" + "github.com/repoowner/reponame/client" + "github.com/repoowner/reponame/apps" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + appwrite.WithKey("") +) + +service := apps.New(client) + +response, error := service.Update( + "", + "", + apps.WithUpdateDescription(""), + apps.WithUpdateClientUri("https://example.com"), + apps.WithUpdateLogoUri("https://example.com"), + apps.WithUpdatePrivacyPolicyUrl("https://example.com"), + apps.WithUpdateTermsUrl("https://example.com"), + apps.WithUpdateContacts([]string{}), + apps.WithUpdateTagline(""), + apps.WithUpdateTags([]string{}), + apps.WithUpdateImages([]string{}), + apps.WithUpdateSupportUrl("https://example.com"), + apps.WithUpdateDataDeletionUrl("https://example.com"), + apps.WithUpdateEnabled(false), + apps.WithUpdateRedirectUris([]string{}), + apps.WithUpdatePostLogoutRedirectUris([]string{}), + apps.WithUpdateType("public"), + apps.WithUpdateDeviceFlow(false), +) +``` +```server-rust +use appwrite::Client; +use appwrite::services::Apps; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let apps = Apps::new(&client); + + let result = apps.update( + "", + "", + Some(""), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some(vec![]), // optional + Some(""), // optional + Some(vec![]), // optional + Some(vec![]), // optional + Some("https://example.com"), // optional + Some("https://example.com"), // optional + Some(false), // optional + Some(vec![]), // optional + Some(vec![]), // optional + Some("public"), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` +{% /multicode %} + +# Delete a client {% #delete %} + +Deleting a client immediately invalidates every token issued to it. + +{% multicode %} +```server-nodejs +import { Client, Apps } from 'node-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.delete({ + appId: '' +}); +``` +```server-deno +import { Client, Apps } from "npm:node-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const apps = new Apps(client); + +const result = await apps.delete({ + appId: '' +}); +``` +```server-php +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$apps = new Apps($client); + +$result = $apps->delete( + appId: '' +);``` +``` +```server-python +from appwrite.client import Client +from appwrite.services.apps import Apps + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +apps = Apps(client) + +result = apps.delete( + app_id = '' +) +``` +```server-ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +apps = Apps.new(client) + +result = apps.delete( + app_id: '' +) +``` +```server-dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Apps apps = Apps(client); + +await apps.delete( + appId: '', +); +``` +```server-dotnet +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Apps apps = new Apps(client); + +await apps.Delete( + appId: "" +);``` +``` +```server-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Apps + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val apps = Apps(client) + +val response = apps.delete( + appId = "" +) +``` +```server-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Apps; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Apps apps = new Apps(client); + +apps.delete( + "", // appId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` +```server-swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let apps = Apps(client) + +let result = try await apps.delete( + appId: "" +) + +``` +```server-go +package main + +import ( + "fmt" + "github.com/repoowner/reponame/client" + "github.com/repoowner/reponame/apps" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + appwrite.WithKey("") +) + +service := apps.New(client) + +response, error := service.Delete( + "", +) +``` +```server-rust +use appwrite::Client; +use appwrite::services::Apps; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let apps = Apps::new(&client); + + let result = apps.delete( + "" + ).await?; + + let _ = result; + + Ok(()) +} +``` +{% /multicode %} diff --git a/src/routes/docs/partners/oauth-server/device-flow/+page.markdoc b/src/routes/docs/partners/oauth-server/device-flow/+page.markdoc new file mode 100644 index 00000000000..53e233e6878 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/device-flow/+page.markdoc @@ -0,0 +1,171 @@ +--- +layout: article +title: Device flow +description: Authorize TVs, CLIs, and other input-constrained devices against your Appwrite OAuth server with the device authorization grant. +back: /docs/partners/oauth-server +--- + +Some devices cannot show a browser or take typed input: a TV app, a CLI on a remote server, a hardware device. The **device authorization grant** (RFC 8628) lets these clients get tokens by having the user approve on a second device, like their phone or laptop. + +# How it works {% #how-it-works %} + +1. The device asks the OAuth server to start a device authorization. The server returns a **device code**, a short **user code**, and a **verification URL**. +2. The device shows the user code and verification URL to the user (for example, "Go to example.com/activate and enter WDJB-MJHT"). +3. The user opens the verification URL on another device, signs in, and approves. +4. Meanwhile the device polls the token endpoint. Once the user approves, the poll returns tokens. + +Device flow is available to a client only when both the project has a **verification URL** configured on the OAuth2 server settings and the client has **device flow** enabled. Device clients are public clients, so they authenticate with no secret. + +# Enable device flow on a client {% #enable %} + +Turn on **Device flow** when you create or update the client. In the Console, it is a toggle in the client dialog; with a Server SDK, set `deviceFlow: true` on the [client](/docs/partners/oauth-server/clients#register). + +# Start a device authorization {% #start %} + +The device requests a device authorization with its client ID and the scopes it wants. + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createDeviceAuthorization({ + clientId: '', // optional + scope: '', // optional + authorizationDetails: '', // optional + resource: '' // optional +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2DeviceAuthorization result = await oauth2.createDeviceAuthorization( + clientId: '', // optional + scope: '', // optional + authorizationDetails: '', // optional + resource: '', // optional +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2DeviceAuthorization = try await oauth2.createDeviceAuthorization( + client_id: "", // optional + scope: "", // optional + authorization_details: "", // optional + resource: "" // optional +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.createDeviceAuthorization( + client_id = "", // (optional) + scope = "", // (optional) + authorization_details = "", // (optional) + resource = "", // (optional) +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.createDeviceAuthorization( + "", // client_id (optional) + "", // scope (optional) + "", // authorization_details (optional) + "", // resource (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createDeviceAuthorization({ + clientId: '', // optional + scope: '', // optional + authorizationDetails: '', // optional + resource: '' // optional +}); + +console.log(result); +``` +{% /multicode %} + +The response contains the codes and where to send the user: + +```json +{ + "device_code": "8575375669b9031cb5371b0ee39985c2...", + "user_code": "WDJB-MJHT", + "verification_uri": "https://example.com/activate", + "verification_uri_complete": "https://example.com/activate?user_code=WDJB-MJHT", + "expires_in": 600, + "interval": 1 +} +``` + +Show the `user_code` and `verification_uri` to the user. The `verification_uri_complete` embeds the code so a phone can open it directly, often as a QR code. + +# Poll for tokens {% #poll %} + +While the user approves on their other device, the client polls the token endpoint with the device code grant, waiting `interval` seconds between attempts. + +```http +POST /v1/oauth2//token HTTP/1.1 +Host: .cloud.appwrite.io +Content-Type: application/x-www-form-urlencoded + +grant_type=urn:ietf:params:oauth:grant-type:device_code&device_code=&client_id= +``` + +Until the user approves, the endpoint returns `authorization_pending`; keep polling. Once they approve, it returns an access token, refresh token, and ID token, exactly like the [authorization code flow](/docs/partners/oauth-server/tokens). If the user declines or the codes expire, the poll returns a terminal error and the device restarts the flow. diff --git a/src/routes/docs/partners/oauth-server/quick-start/+page.markdoc b/src/routes/docs/partners/oauth-server/quick-start/+page.markdoc new file mode 100644 index 00000000000..e91f61c9eb1 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/quick-start/+page.markdoc @@ -0,0 +1,468 @@ +--- +layout: article +title: OAuth server quick start +description: Enable Appwrite's OAuth server, register a client, and run your first authorization code sign-in end to end. +back: /docs/partners/oauth-server +--- + +This guide turns a project into an OAuth provider and runs one sign-in through it. By the end you will have an enabled server, a registered client, and an access token issued by your project. + +# Enable the server {% #enable %} + +In the Console, open **Auth**, select the **OAuth2 server** tab, and turn on **Enable OAuth2 server**. + +{% only_dark %} +![Enabling the OAuth2 server in the Appwrite Console](/images/docs/oauth-server/dark/oauth2-server-settings.avif) +{% /only_dark %} +{% only_light %} +![Enabling the OAuth2 server in the Appwrite Console](/images/docs/oauth-server/oauth2-server-settings.avif) +{% /only_light %} + +Set the **Authorization URL** to the page you will host the consent screen on. This is where Appwrite redirects users during authorization. You can point it at a placeholder for now and change it later. The `openid`, `profile`, and `email` scopes are always included; add any custom scopes your clients will request. + +You can also enable and configure the server with a [Server SDK](/docs/sdks#server) using the `updateOAuth2Server` method. + +{% info title="Required scope" %} +The API key used for this call needs the `project.write` scope. +{% /info %} + +{% multicode %} +```server-nodejs +import { Client, Project } from 'node-appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const project = new Project(client); + +const result = await project.updateOAuth2Server({ + enabled: false, + authorizationUrl: 'https://example.com', + scopes: [], // optional + authorizationDetailsTypes: [], // optional + accessTokenDuration: 60, // optional + refreshTokenDuration: 60, // optional + publicAccessTokenDuration: 60, // optional + publicRefreshTokenDuration: 60, // optional + confidentialPkce: false, // optional + verificationUrl: 'https://example.com', // optional + userCodeLength: 6, // optional + userCodeFormat: 'numeric', // optional + deviceCodeDuration: 60 // optional +}); +``` +```server-deno +import { Client, Project } from "npm:node-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +const project = new Project(client); + +const result = await project.updateOAuth2Server({ + enabled: false, + authorizationUrl: 'https://example.com', + scopes: [], // optional + authorizationDetailsTypes: [], // optional + accessTokenDuration: 60, // optional + refreshTokenDuration: 60, // optional + publicAccessTokenDuration: 60, // optional + publicRefreshTokenDuration: 60, // optional + confidentialPkce: false, // optional + verificationUrl: 'https://example.com', // optional + userCodeLength: 6, // optional + userCodeFormat: 'numeric', // optional + deviceCodeDuration: 60 // optional +}); +``` +```server-php +```php +setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('') // Your project ID + ->setKey(''); // Your secret API key + +$project = new Project($client); + +$result = $project->updateOAuth2Server( + enabled: false, + authorizationUrl: 'https://example.com', + scopes: [], // optional + authorizationDetailsTypes: [], // optional + accessTokenDuration: 60, // optional + refreshTokenDuration: 60, // optional + publicAccessTokenDuration: 60, // optional + publicRefreshTokenDuration: 60, // optional + confidentialPkce: false, // optional + verificationUrl: 'https://example.com', // optional + userCodeLength: 6, // optional + userCodeFormat: 'numeric', // optional + deviceCodeDuration: 60 // optional +);``` +``` +```server-python +from appwrite.client import Client +from appwrite.services.project import Project +from appwrite.models import Project as ProjectModel + +client = Client() +client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('') # Your project ID +client.set_key('') # Your secret API key + +project = Project(client) + +result: ProjectModel = project.update_o_auth2_server( + enabled = False, + authorization_url = 'https://example.com', + scopes = [], # optional + authorization_details_types = [], # optional + access_token_duration = 60, # optional + refresh_token_duration = 60, # optional + public_access_token_duration = 60, # optional + public_refresh_token_duration = 60, # optional + confidential_pkce = False, # optional + verification_url = 'https://example.com', # optional + user_code_length = 6, # optional + user_code_format = 'numeric', # optional + device_code_duration = 60 # optional +) + +print(result.model_dump()) +``` +```server-ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('') # Your project ID + .set_key('') # Your secret API key + +project = Project.new(client) + +result = project.update_o_auth2_server( + enabled: false, + authorization_url: 'https://example.com', + scopes: [], # optional + authorization_details_types: [], # optional + access_token_duration: 60, # optional + refresh_token_duration: 60, # optional + public_access_token_duration: 60, # optional + public_refresh_token_duration: 60, # optional + confidential_pkce: false, # optional + verification_url: 'https://example.com', # optional + user_code_length: 6, # optional + user_code_format: 'numeric', # optional + device_code_duration: 60 # optional +) +``` +```server-dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('') // Your project ID + .setKey(''); // Your secret API key + +Project project = Project(client); + +Project result = await project.updateOAuth2Server( + enabled: false, + authorizationUrl: 'https://example.com', + scopes: [], // (optional) + authorizationDetailsTypes: [], // (optional) + accessTokenDuration: 60, // (optional) + refreshTokenDuration: 60, // (optional) + publicAccessTokenDuration: 60, // (optional) + publicRefreshTokenDuration: 60, // (optional) + confidentialPkce: false, // (optional) + verificationUrl: 'https://example.com', // (optional) + userCodeLength: 6, // (optional) + userCodeFormat: 'numeric', // (optional) + deviceCodeDuration: 60, // (optional) +); +``` +```server-dotnet +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("") // Your project ID + .SetKey(""); // Your secret API key + +Project project = new Project(client); + +Project result = await project.UpdateOAuth2Server( + enabled: false, + authorizationUrl: "https://example.com", + scopes: new List(), // optional + authorizationDetailsTypes: new List(), // optional + accessTokenDuration: 60, // optional + refreshTokenDuration: 60, // optional + publicAccessTokenDuration: 60, // optional + publicRefreshTokenDuration: 60, // optional + confidentialPkce: false, // optional + verificationUrl: "https://example.com", // optional + userCodeLength: 6, // optional + userCodeFormat: "numeric", // optional + deviceCodeDuration: 60 // optional +);``` +``` +```server-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Project + +val client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +val project = Project(client) + +val response = project.updateOAuth2Server( + enabled = false, + authorizationUrl = "https://example.com", + scopes = listOf(), // optional + authorizationDetailsTypes = listOf(), // optional + accessTokenDuration = 60, // optional + refreshTokenDuration = 60, // optional + publicAccessTokenDuration = 60, // optional + publicRefreshTokenDuration = 60, // optional + confidentialPkce = false, // optional + verificationUrl = "https://example.com", // optional + userCodeLength = 6, // optional + userCodeFormat = "numeric", // optional + deviceCodeDuration = 60 // optional +) +``` +```server-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Project; + +Client client = new Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey(""); // Your secret API key + +Project project = new Project(client); + +project.updateOAuth2Server( + false, // enabled + "https://example.com", // authorizationUrl + List.of(), // scopes (optional) + List.of(), // authorizationDetailsTypes (optional) + 60, // accessTokenDuration (optional) + 60, // refreshTokenDuration (optional) + 60, // publicAccessTokenDuration (optional) + 60, // publicRefreshTokenDuration (optional) + false, // confidentialPkce (optional) + "https://example.com", // verificationUrl (optional) + 6, // userCodeLength (optional) + "numeric", // userCodeFormat (optional) + 60, // deviceCodeDuration (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` +```server-swift +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + .setKey("") // Your secret API key + +let project = Project(client) + +let project = try await project.updateOAuth2Server( + enabled: false, + authorizationUrl: "https://example.com", + scopes: [], // optional + authorizationDetailsTypes: [], // optional + accessTokenDuration: 60, // optional + refreshTokenDuration: 60, // optional + publicAccessTokenDuration: 60, // optional + publicRefreshTokenDuration: 60, // optional + confidentialPkce: false, // optional + verificationUrl: "https://example.com", // optional + userCodeLength: 6, // optional + userCodeFormat: "numeric", // optional + deviceCodeDuration: 60 // optional +) + +``` +```server-go +package main + +import ( + "fmt" + "github.com/repoowner/reponame/client" + "github.com/repoowner/reponame/project" +) + +client := client.New( + client.WithEndpoint("https://.cloud.appwrite.io/v1") + client.WithProject("") + client.WithKey("") +) + +service := project.New(client) + +response, error := service.UpdateOAuth2Server( + false, + "https://example.com", + project.WithUpdateOAuth2ServerScopes([]string{}), + project.WithUpdateOAuth2ServerAuthorizationDetailsTypes([]string{}), + project.WithUpdateOAuth2ServerAccessTokenDuration(60), + project.WithUpdateOAuth2ServerRefreshTokenDuration(60), + project.WithUpdateOAuth2ServerPublicAccessTokenDuration(60), + project.WithUpdateOAuth2ServerPublicRefreshTokenDuration(60), + project.WithUpdateOAuth2ServerConfidentialPkce(false), + project.WithUpdateOAuth2ServerVerificationUrl("https://example.com"), + project.WithUpdateOAuth2ServerUserCodeLength(6), + project.WithUpdateOAuth2ServerUserCodeFormat("numeric"), + project.WithUpdateOAuth2ServerDeviceCodeDuration(60), +) +``` +```server-rust +use appwrite::Client; +use appwrite::services::Project; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let client = Client::new(); + client.set_endpoint("https://.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project(""); // Your project ID + client.set_key(""); // Your secret API key + + let project = Project::new(&client); + + let result = project.update_o_auth2_server( + false, + "https://example.com", + Some(vec![]), // optional + Some(vec![]), // optional + Some(60), // optional + Some(60), // optional + Some(60), // optional + Some(60), // optional + Some(false), // optional + Some("https://example.com"), // optional + Some(6), // optional + Some("numeric"), // optional + Some(60) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` +{% /multicode %} + +# Copy the discovery URL {% #discovery %} + +Once enabled, the server publishes an OpenID Connect discovery document. Integrators point their OAuth or OIDC library at this URL and it learns every endpoint automatically. + +{% only_dark %} +![The OIDC discovery URL in the Appwrite Console](/images/docs/oauth-server/dark/oauth2-server-discovery.avif) +{% /only_dark %} +{% only_light %} +![The OIDC discovery URL in the Appwrite Console](/images/docs/oauth-server/oauth2-server-discovery.avif) +{% /only_light %} + +Open it in a browser to confirm the server is live. It returns JSON describing the authorization, token, userinfo, and JWKS endpoints. + +```http +GET /v1/oauth2//.well-known/openid-configuration HTTP/1.1 +Host: .cloud.appwrite.io +``` + +# Register a client {% #register %} + +Open the **Apps** sub-tab and create a client. Give it a name, add at least one redirect URI, and choose a type. Pick **Confidential** for this walkthrough so you get a secret to authenticate the token exchange. Copy the secret when it is shown, because it appears only once. + +{% only_dark %} +![Creating an OAuth2 client](/images/docs/oauth-server/dark/oauth2-server-create-app.avif) +{% /only_dark %} +{% only_light %} +![Creating an OAuth2 client](/images/docs/oauth-server/oauth2-server-create-app.avif) +{% /only_light %} + +See [Clients](/docs/partners/oauth-server/clients) for the full set of options and the SDK equivalents. + +# Run the authorization code flow {% #flow %} + +With the server enabled and a client registered, you can run a sign-in. The flow has three steps: send the user to authorize, let them consent, then exchange the returned code for tokens. + +**1. Send the user to the authorization endpoint.** Include the client ID, a registered redirect URI, `response_type=code`, and the scopes you want. If the user has a session on your project, Appwrite redirects to your authorization URL with a `grant_id`. Otherwise it redirects there with the full request so your screen can sign the user in first. + +```http +GET /v1/oauth2//authorize?client_id=&redirect_uri=&response_type=code&scope=openid%20profile%20email&state= HTTP/1.1 +Host: .cloud.appwrite.io +``` + +**2. Approve the grant.** Your consent screen loads the grant, shows the user what the client is requesting, and approves it. Appwrite then redirects back to the client's redirect URI with an authorization `code`. Building this screen is covered in [Authorization](/docs/partners/oauth-server/authorization). + +**3. Exchange the code for tokens.** The client sends the code to the token endpoint. A confidential client authenticates with HTTP Basic auth using its client ID and secret. + +```http +POST /v1/oauth2//token HTTP/1.1 +Host: .cloud.appwrite.io +Authorization: Basic +Content-Type: application/x-www-form-urlencoded + +grant_type=authorization_code&code=&redirect_uri= +``` + +The response contains an access token, a refresh token, and an ID token: + +```json +{ + "access_token": "eyJ0eXAiOiJhdCtqd3Qi...", + "token_type": "Bearer", + "expires_in": 28800, + "refresh_token": "eyJ0eXAiOiJKV1Qi...", + "scope": "openid profile email", + "id_token": "eyJ0eXAiOiJKV1Qi..." +} +``` + +The client can now call the userinfo endpoint with the access token, or validate the ID token against the server's JWKS. See [Tokens](/docs/partners/oauth-server/tokens) for token structure, refresh, and revocation. + +# Next steps {% #next-steps %} + +{% cards %} +{% cards_item href="/docs/partners/oauth-server/authorization" title="Authorization" %} +Host your consent screen and drive the authorize, grant, and approve steps. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/clients" title="Clients" %} +Confidential vs public clients, secrets, and rotation. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/tokens" title="Tokens" %} +Token lifetimes, refresh with rotation, introspection, and revocation. +{% /cards_item %} +{% /cards %} diff --git a/src/routes/docs/partners/oauth-server/scopes/+page.markdoc b/src/routes/docs/partners/oauth-server/scopes/+page.markdoc new file mode 100644 index 00000000000..fc9474765da --- /dev/null +++ b/src/routes/docs/partners/oauth-server/scopes/+page.markdoc @@ -0,0 +1,40 @@ +--- +layout: article +title: Scopes +description: The built-in OpenID Connect scopes and the custom scopes clients can request from your Appwrite OAuth server. +back: /docs/partners/oauth-server +--- + +Scopes are the permissions a client asks for during authorization. The user sees the requested scopes on the consent screen and approves or declines them. The access token the server issues carries the scopes that were granted. + +# Built-in scopes {% #built-in %} + +Four OpenID Connect scopes are always available and cannot be removed: + +| Scope | Grants access to | +| --- | --- | +| `openid` | The user's subject identifier. Required for OpenID Connect and to receive an ID token. | +| `profile` | The user's profile claims, such as their name. | +| `email` | The user's email address. | +| `phone` | The user's phone number. | + +These appear as locked entries in the **Scopes** field on the OAuth2 server settings. A client requests them by listing them in the `scope` parameter on the authorization request, space-separated, for example `openid profile email`. + +# Custom scopes {% #custom %} + +Beyond the built-in scopes, you define your own to represent permissions in your product, such as `read:projects` or `write:billing`. Add them in the **Scopes** field on the OAuth2 server settings, or with the `scopes` array on the `updateOAuth2Server` method. The `openid`, `profile`, `email`, and `phone` scopes are always merged in, so you only list the custom ones. + +{% only_dark %} +![Configuring scopes on the OAuth2 server](/images/docs/oauth-server/dark/oauth2-server-settings.avif) +{% /only_dark %} +{% only_light %} +![Configuring scopes on the OAuth2 server](/images/docs/oauth-server/oauth2-server-settings.avif) +{% /only_light %} + +A project can define up to 100 scopes, each up to 128 characters. A client can only request scopes you have defined; requesting an unknown scope fails the authorization request. + +Custom scopes are labels the OAuth server carries through the flow and stamps onto the access token. Enforcing what each scope allows is your resource server's job: read the `scope` claim from the access token (or from an [introspection](/docs/partners/oauth-server/tokens#introspect) response) and allow or deny the request accordingly. + +# Requesting scopes {% #requesting %} + +A client lists the scopes it wants in the `scope` parameter, space-separated, when it starts [authorization](/docs/partners/oauth-server/authorization#authorize). The user is shown exactly these scopes on your consent screen. Whatever they approve is what the issued access token carries in its `scope` claim, so a client should request only what it needs. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.svelte b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.svelte new file mode 100644 index 00000000000..c1c9c5a8cb2 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.svelte @@ -0,0 +1,10 @@ + + +{@render children()} diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.ts b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.ts new file mode 100644 index 00000000000..c8884f46b84 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+layout.ts @@ -0,0 +1,11 @@ +import type { LayoutLoad } from './$types'; + +export const load: LayoutLoad = ({ url }) => { + const tutorials = import.meta.glob('./**/*.markdoc', { + eager: true + }); + return { + tutorials, + pathname: url.pathname + }; +}; diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+page.ts b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+page.ts new file mode 100644 index 00000000000..deeb96a18be --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/+page.ts @@ -0,0 +1,5 @@ +import { redirect } from '@sveltejs/kit'; + +export function load() { + redirect(303, '/docs/partners/oauth-server/sign-in-with-your-product/step-1'); +} diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-1/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-1/+page.markdoc new file mode 100644 index 00000000000..56f071e9f6e --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-1/+page.markdoc @@ -0,0 +1,50 @@ +--- +layout: tutorial +title: Sign in with your product +description: Build an end-to-end "Sign in with your product" experience against your Appwrite OAuth server, from the consent screen to the token exchange. +step: 1 +difficulty: intermediate +readtime: 25 +framework: TanStack Start +category: OAuth server +back: /docs/partners/oauth-server +--- + +Once your project's [OAuth server](/docs/partners/oauth-server) is enabled, other apps can offer "Sign in with your product". This tutorial builds that experience end to end with two small [TanStack Start](https://tanstack.com/start) apps, so you can see every moving part. + +# What you will build {% #what-you-will-build %} + +Two apps play the two sides of an OAuth integration: + +- **TaskFlow**, the provider. It owns the Appwrite project with the OAuth server enabled, and it hosts the **consent screen** where its users approve access. +- **Vantage**, the consumer. A separate product that adds a **Sign in with TaskFlow** button, exchanges the authorization code for tokens on its server, and reads the user's profile. + +TaskFlow is your product. Vantage stands in for any third party integrating with it. + +# The flow {% #the-flow %} + +When a Vantage user clicks **Sign in with TaskFlow**, this happens: + +1. Vantage redirects the user to TaskFlow's **authorize** endpoint. +2. The OAuth server sends the user to TaskFlow's **consent screen** to sign in and approve. +3. On approval, the server redirects back to Vantage with an **authorization code**. +4. Vantage's server **exchanges the code for tokens** using its client secret. +5. Vantage reads the user's profile from **userinfo** and signs them in. + +The authorization code flow is standard OAuth 2.1, so nothing here is Appwrite-specific on the wire. The two pieces you build are the consent screen TaskFlow hosts and the sign-in Vantage adds. + +# Why the token exchange runs on the server {% #server-side %} + +Vantage is a **confidential client**: it has a client secret. That secret authenticates the token exchange and must never reach the browser. TanStack Start makes this natural, the exchange runs inside a **server function**, so the secret stays on the server the whole time. + +# Prerequisites {% #prerequisites %} + +- An Appwrite Cloud project. +- [Node.js](https://nodejs.org/) 20 or newer and a package manager (this tutorial uses `pnpm`). +- Basic familiarity with React. + +{% info title="Get the finished code" %} +The complete apps from this tutorial are on GitHub at [appwrite-community/oauth-guide-taskflow](https://github.com/appwrite-community/oauth-guide-taskflow). Clone it to follow along or to compare against your own. +{% /info %} + +Continue to enable the OAuth server on your project. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-2/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-2/+page.markdoc new file mode 100644 index 00000000000..97c5a911579 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-2/+page.markdoc @@ -0,0 +1,55 @@ +--- +layout: tutorial +title: Enable the OAuth server +description: Turn on the OAuth server on your Appwrite project and register the client app. +step: 2 +--- + +Before writing any code, turn TaskFlow's project into an OAuth provider and register Vantage as a client. + +# Enable the server {% #enable %} + +{% only_dark %} +![Enabling the OAuth2 server in the Appwrite Console](/images/docs/oauth-server/dark/oauth2-server-settings.avif) +{% /only_dark %} +{% only_light %} +![Enabling the OAuth2 server in the Appwrite Console](/images/docs/oauth-server/oauth2-server-settings.avif) +{% /only_light %} + +In the Console, open **Auth**, select the **OAuth2 server** tab, and turn on **Enable OAuth2 server**. + +Set the **Authorization URL** to where TaskFlow will host its consent screen. In this tutorial that is `http://localhost:4000/oauth/consent`. This is where the OAuth server sends users to sign in and approve. + +Leave the scopes at their defaults. `openid`, `profile`, and `email` are always included, which is all Vantage needs. See [Scopes](/docs/partners/oauth-server/scopes) to add your own later. + +# Register the client {% #register-client %} + +{% only_dark %} +![Creating the Vantage client in the Appwrite Console](/images/docs/oauth-server/dark/oauth2-server-create-app.avif) +{% /only_dark %} +{% only_light %} +![Creating the Vantage client in the Appwrite Console](/images/docs/oauth-server/oauth2-server-create-app.avif) +{% /only_light %} + +Open the **Apps** sub-tab and create a client for Vantage: + +- **Name**: `Vantage`. This appears on the consent screen. +- **Client type**: `Confidential`. Vantage has a server that can hold a secret. +- **Redirect URIs**: `http://localhost:4100/oauth/callback`. The OAuth server only returns codes to registered URIs. + +When you create the client, copy the **client secret**. It is shown once. You will also need the **client ID** from the clients list. + +{% only_dark %} +![The client secret shown once on creation](/images/docs/oauth-server/dark/oauth2-server-secret-created.avif) +{% /only_dark %} +{% only_light %} +![The client secret shown once on creation](/images/docs/oauth-server/oauth2-server-secret-created.avif) +{% /only_light %} + +{% info title="Keep these three values" %} +You now have everything the apps need to talk to the OAuth server: the **client ID**, the **client secret**, and your **project ID**. Keep them handy for the next step. +{% /info %} + +For the full set of client options and the SDK equivalents, see [Clients](/docs/partners/oauth-server/clients). + +Continue to scaffold the two apps. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-3/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-3/+page.markdoc new file mode 100644 index 00000000000..6dc848baf88 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-3/+page.markdoc @@ -0,0 +1,74 @@ +--- +layout: tutorial +title: Create the apps +description: Scaffold the two TanStack Start apps and wire up their environment. +step: 3 +--- + +Both sides are TanStack Start apps. Scaffold them in a single folder. + +# Scaffold the projects {% #scaffold %} + +Create the consumer (Vantage) and the provider (TaskFlow): + +```sh +npx @tanstack/cli create consumer --framework React --package-manager pnpm --no-examples +npx @tanstack/cli create provider --framework React --package-manager pnpm --no-examples +``` + +This gives you two full TanStack Start apps with server functions, file-based routing, and Tailwind CSS already set up. + +Give each a fixed port so the redirect URIs stay stable. In each app's `package.json`, set the dev script: + +```json +// consumer/package.json +"scripts": { "dev": "vite dev --port 4100" } +``` + +```json +// provider/package.json +"scripts": { "dev": "vite dev --port 4000" } +``` + +# Configure the environment {% #env %} + +The apps read the OAuth values from environment variables. Add a `.env` to each. + +Vantage needs the client credentials and its redirect URI: + +```sh +# consumer/.env +OAUTH_ISSUER=https://.cloud.appwrite.io/v1/oauth2/ +OAUTH_CLIENT_ID= +OAUTH_CLIENT_SECRET= +OAUTH_REDIRECT_URI=http://localhost:4100/oauth/callback +SESSION_SECRET= +``` + +TaskFlow needs its project details and an API key (used only to read a client's display name for the consent card): + +```sh +# provider/.env +APPWRITE_ENDPOINT=https://.cloud.appwrite.io/v1 +APPWRITE_PROJECT= +OAUTH_ISSUER=https://.cloud.appwrite.io/v1/oauth2/ +APPWRITE_API_KEY= +SESSION_SECRET= +``` + +Vite only exposes variables prefixed with `VITE_` to the browser, and these are secrets, so load them into the server with `dotenv`. Install it in both apps: + +```sh +pnpm add dotenv +``` + +Then import it at the top of each `vite.config.ts`, before anything else, so `process.env` is populated when the server runs: + +```ts +// vite.config.ts +import 'dotenv/config' +import { defineConfig } from 'vite' +// ...rest of the config +``` + +With both apps scaffolded and configured, build Vantage's sign-in next. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-4/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-4/+page.markdoc new file mode 100644 index 00000000000..cbed8da94f4 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-4/+page.markdoc @@ -0,0 +1,86 @@ +--- +layout: tutorial +title: Add Sign in with your product +description: Build the consumer's sign-in button and the redirect that starts the OAuth flow. +step: 4 +--- + +Start with Vantage, the consumer. It needs a helper for the OAuth values, a landing page with a **Sign in with TaskFlow** button, and a route that kicks off the flow. + +# The OAuth helper {% #helper %} + +Create `consumer/src/lib/oauth.ts`. It reads the config and builds the authorization URL. Import `@tanstack/react-start/server-only` at the top: it makes the build fail if this module is ever pulled into the browser bundle, which keeps the client secret server-side. + +```ts +// consumer/src/lib/oauth.ts +import '@tanstack/react-start/server-only' +import { useSession } from '@tanstack/react-start/server' + +const issuer = process.env.OAUTH_ISSUER! +const clientId = process.env.OAUTH_CLIENT_ID! +const redirectUri = process.env.OAUTH_REDIRECT_URI! + +export const SCOPES = 'openid profile email' + +/** Build the URL that starts the authorization code flow. */ +export function authorizeUrl(state: string) { + const params = new URLSearchParams({ + client_id: clientId, + redirect_uri: redirectUri, + response_type: 'code', + scope: SCOPES, + state, + }) + return `${issuer}/authorize?${params.toString()}` +} + +type SessionData = { accessToken?: string; user?: unknown; state?: string } + +/** A signed, httpOnly cookie session for Vantage. */ +export function vantageSession() { + return useSession({ + name: 'vantage_session', + password: process.env.SESSION_SECRET!, + }) +} +``` + +# The start route {% #start-route %} + +Clicking the button navigates to `/oauth/start`. Its loader mints a random `state` value, stores it in the session to protect against CSRF, and redirects to the OAuth server. Create `consumer/src/routes/oauth.start.tsx`: + +```tsx +// consumer/src/routes/oauth.start.tsx +import { createFileRoute, redirect } from '@tanstack/react-router' +import { createServerFn } from '@tanstack/react-start' +import { authorizeUrl, vantageSession } from '../lib/oauth' + +const start = createServerFn().handler(async () => { + const state = crypto.randomUUID() + const session = await vantageSession() + await session.update({ state }) + throw redirect({ href: authorizeUrl(state) }) +}) + +export const Route = createFileRoute('/oauth/start')({ + loader: async () => { + await start() + }, + component: () => null, +}) +``` + +# The sign-in button {% #button %} + +![Vantage landing page with a Sign in with TaskFlow button](/images/docs/oauth-server/guide/vantage-landing.avif) + +On the landing page, the button is a link to `/oauth/start`: + +```tsx +// consumer/src/routes/index.tsx (excerpt) + + Sign in with TaskFlow + +``` + +Start the app with `pnpm dev` and open `http://localhost:4100`. You have a landing page with a working sign-in button. Clicking it redirects to the OAuth server, which sends the user to TaskFlow's consent screen. That screen does not exist yet, so build it next. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-5/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-5/+page.markdoc new file mode 100644 index 00000000000..0cdffe9d85a --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-5/+page.markdoc @@ -0,0 +1,219 @@ +--- +layout: tutorial +title: Build the consent screen +description: Host the consent screen where your users sign in and approve access. +step: 5 +--- + +The consent screen is the page TaskFlow hosts at its authorization URL. When the OAuth server sends a user here, the screen signs them in, shows what the client is asking for, and records their decision. All of it runs on TaskFlow's server, carrying the user's Appwrite session. + +# Types for the consent card {% #types %} + +Create `provider/src/lib/consent-types.ts`. It holds only client-safe values, so the browser can import it: + +```ts +// provider/src/lib/consent-types.ts +export type Grant = { + $id: string + appId: string + scopes: string[] + redirectUri: string +} + +export type ClientApp = { $id: string; name: string; tagline?: string } + +// Human-readable labels for the scopes shown on the consent card. +export const SCOPE_LABELS: Record = { + openid: 'Confirm your identity', + profile: 'See your name and profile details', + email: 'See your email address', + phone: 'See your phone number', +} +``` + +# The server helpers {% #helpers %} + +Create `provider/src/lib/oauth-server.ts`. Every function here calls the OAuth server on behalf of the signed-in user. Appwrite returns the user's session token in a cookie on login, and that token is passed as the `X-Appwrite-Session` header on later calls. + +```ts +// provider/src/lib/oauth-server.ts +import '@tanstack/react-start/server-only' +import { useSession } from '@tanstack/react-start/server' +import type { ClientApp, Grant } from './consent-types' + +const endpoint = process.env.APPWRITE_ENDPOINT! +const project = process.env.APPWRITE_PROJECT! +const issuer = process.env.OAUTH_ISSUER! +const apiKey = process.env.APPWRITE_API_KEY! + +const projectHeaders = { 'X-Appwrite-Project': project } + +/** Log a TaskFlow user in and return their Appwrite session token. */ +export async function login(email: string, password: string): Promise { + const res = await fetch(`${endpoint}/account/sessions/email`, { + method: 'POST', + headers: { ...projectHeaders, 'Content-Type': 'application/json' }, + body: JSON.stringify({ email, password }), + redirect: 'manual', + }) + if (!res.ok) throw new Error('Invalid email or password') + const setCookie = res.headers.get('set-cookie') ?? '' + const match = setCookie.match(new RegExp(`a_session_${project}=([^;]+)`)) + if (!match) throw new Error('No session returned') + return match[1] +} + +type AuthorizeParams = Record + +/** Create a grant for the signed-in user, or get a redirect if the OAuth + * server auto-approved a request the user already consented to. */ +export async function authorize( + params: AuthorizeParams, + sessionToken: string, +): Promise<{ grantId?: string; redirect?: string }> { + const qs = new URLSearchParams(params).toString() + const res = await fetch(`${issuer}/authorize?${qs}`, { + headers: { ...projectHeaders, 'X-Appwrite-Session': sessionToken }, + redirect: 'manual', + }) + const location = res.headers.get('location') ?? '' + const grantId = new URL(location, endpoint).searchParams.get('grant_id') + return grantId ? { grantId } : { redirect: location } +} + +export async function getGrant(grantId: string, sessionToken: string): Promise { + const res = await fetch(`${issuer}/grants/${grantId}`, { + headers: { ...projectHeaders, 'X-Appwrite-Session': sessionToken }, + }) + if (!res.ok) throw new Error(`Grant not found: ${res.status}`) + return res.json() +} + +/** Read a client's display name for the consent card, using a server-side key. */ +export async function getClientApp(appId: string): Promise { + const res = await fetch(`${endpoint}/apps/${appId}`, { + headers: { ...projectHeaders, 'X-Appwrite-Key': apiKey }, + }) + if (!res.ok) throw new Error(`App not found: ${res.status}`) + return res.json() +} + +/** Approve or reject a grant. The OAuth server returns the URL to send the + * user back to, carrying the authorization code (approve) or an error (reject). */ +async function decide( + action: 'approve' | 'reject', + grantId: string, + sessionToken: string, +): Promise { + const res = await fetch(`${issuer}/${action}`, { + method: 'POST', + headers: { + ...projectHeaders, + 'X-Appwrite-Session': sessionToken, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ grant_id: grantId }), + redirect: 'manual', + }) + const location = res.headers.get('location') + if (!location) throw new Error(`${action} failed: ${res.status}`) + return location +} + +export const approve = (grantId: string, token: string) => decide('approve', grantId, token) +export const reject = (grantId: string, token: string) => decide('reject', grantId, token) + +type SessionData = { token?: string; email?: string; params?: AuthorizeParams } + +/** TaskFlow's own signed session cookie, holding the Appwrite session token. */ +export function taskflowSession() { + return useSession({ + name: 'taskflow_session', + password: process.env.SESSION_SECRET!, + }) +} +``` + +# The consent route {% #route %} + +Create `provider/src/routes/oauth.consent.tsx`. The loader decides what to show: the login form if the user is not signed in, or the consent card once they are. It captures the incoming authorize parameters so it can resume the request after login. + +```tsx +// provider/src/routes/oauth.consent.tsx (loader and server functions) +import { createFileRoute, redirect } from '@tanstack/react-router' +import { createServerFn } from '@tanstack/react-start' +import { getRequestUrl } from '@tanstack/react-start/server' +import { + approve, authorize, getClientApp, getGrant, login, reject, taskflowSession, +} from '../lib/oauth-server' +import type { ClientApp, Grant } from '../lib/consent-types' + +const AUTHORIZE_KEYS = ['client_id', 'redirect_uri', 'response_type', 'scope', 'state', 'nonce'] + +type ConsentView = + | { view: 'login' } + | { view: 'consent'; grant: Grant; app: ClientApp; email: string } + +const loadConsent = createServerFn().handler(async (): Promise => { + const url = getRequestUrl() + const session = await taskflowSession() + + // Capture the authorize request so we can resume it after login. + const incoming: Record = {} + for (const key of AUTHORIZE_KEYS) { + const value = url.searchParams.get(key) + if (value) incoming[key] = value + } + + if (!session.data.token) { + if (Object.keys(incoming).length) await session.update({ params: incoming }) + return { view: 'login' } + } + + let grantId = url.searchParams.get('grant_id') + if (!grantId) { + const params = { ...session.data.params, ...incoming } + const result = await authorize(params, session.data.token) + if (result.redirect) throw redirect({ href: result.redirect }) + grantId = result.grantId! + } + + const grant = await getGrant(grantId, session.data.token) + const app = await getClientApp(grant.appId) + return { view: 'consent', grant, app, email: session.data.email ?? '' } +}) + +const submitLogin = createServerFn({ method: 'POST' }) + .validator((d: { email: string; password: string }) => d) + .handler(async ({ data }) => { + const token = await login(data.email, data.password) + const session = await taskflowSession() + await session.update({ token, email: data.email }) + }) + +const decideGrant = createServerFn({ method: 'POST' }) + .validator((d: { grantId: string; action: 'approve' | 'reject' }) => d) + .handler(async ({ data }) => { + const session = await taskflowSession() + const act = data.action === 'approve' ? approve : reject + const location = await act(data.grantId, session.data.token!) + throw redirect({ href: location }) + }) + +export const Route = createFileRoute('/oauth/consent')({ + component: Consent, + loader: async () => loadConsent(), +}) +``` + +The component renders one of two cards from the loader data. The login form submits `submitLogin` and then calls `router.invalidate()` so the loader re-runs and moves to the consent view. The consent card reads `grant.scopes` and maps them through `SCOPE_LABELS`, and calls `decideGrant` on **Authorize** or **Cancel**. Only the styling is left out here. + +# Sign in and approve {% #sign-in %} + +![TaskFlow consent screen sign-in form](/images/docs/oauth-server/guide/taskflow-login.avif) + +When the OAuth server sends a user to the consent screen, they first sign in with their TaskFlow account. + +![TaskFlow consent screen showing the requested permissions](/images/docs/oauth-server/guide/taskflow-consent.avif) + +The consent card then shows the client's name and exactly what it is asking for. On **Authorize**, the OAuth server redirects back to Vantage with an authorization code. Vantage handles it next. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-6/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-6/+page.markdoc new file mode 100644 index 00000000000..874fbedfdf5 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-6/+page.markdoc @@ -0,0 +1,130 @@ +--- +layout: tutorial +title: Exchange the code for tokens +description: Handle the callback, exchange the authorization code for tokens on the server, and sign the user in. +step: 6 +--- + +The OAuth server redirects back to Vantage's redirect URI with a `code` and the `state`. Vantage exchanges that code for tokens on its server, reads the user's profile, and signs them in. + +# Add the token functions {% #token-functions %} + +Extend `consumer/src/lib/oauth.ts` with the exchange and userinfo calls. The exchange authenticates with the client secret using HTTP Basic auth, which is why it must run on the server. + +```ts +// consumer/src/lib/oauth.ts (additions) +const clientSecret = process.env.OAUTH_CLIENT_SECRET! + +export type Tokens = { + access_token: string + refresh_token: string + id_token: string + expires_in: number + scope: string +} + +/** Exchange an authorization code for tokens. */ +export async function exchangeCode(code: string): Promise { + const basic = Buffer.from(`${clientId}:${clientSecret}`).toString('base64') + const res = await fetch(`${issuer}/token`, { + method: 'POST', + headers: { + Authorization: `Basic ${basic}`, + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: new URLSearchParams({ + grant_type: 'authorization_code', + code, + redirect_uri: redirectUri, + }), + }) + if (!res.ok) throw new Error(`Token exchange failed: ${res.status}`) + return res.json() +} + +export type UserInfo = { + sub: string + name?: string + email?: string + email_verified?: boolean +} + +/** Read the signed-in user's profile from the userinfo endpoint. */ +export async function fetchUserInfo(accessToken: string): Promise { + const res = await fetch(`${issuer}/userinfo`, { + headers: { Authorization: `Bearer ${accessToken}` }, + }) + if (!res.ok) throw new Error(`userinfo failed: ${res.status}`) + return res.json() +} +``` + +# Handle the callback {% #callback %} + +Create `consumer/src/routes/oauth.callback.tsx`. Its loader runs on the server: it checks the `state` against the session, exchanges the code, reads the profile, stores it in the session, and sends the user to the dashboard. + +```tsx +// consumer/src/routes/oauth.callback.tsx +import { createFileRoute, redirect } from '@tanstack/react-router' +import { createServerFn } from '@tanstack/react-start' +import { getRequestUrl } from '@tanstack/react-start/server' +import { exchangeCode, fetchUserInfo, vantageSession } from '../lib/oauth' + +const handleCallback = createServerFn().handler(async () => { + const url = getRequestUrl() + const code = url.searchParams.get('code') + const state = url.searchParams.get('state') + const session = await vantageSession() + + // The state must match the value we set in /oauth/start. + if (!code || !state || state !== session.data.state) { + throw redirect({ to: '/', search: { error: 'invalid_state' } }) + } + + const tokens = await exchangeCode(code) + const user = await fetchUserInfo(tokens.access_token) + + await session.update({ + accessToken: tokens.access_token, + user, + state: undefined, + }) + + throw redirect({ to: '/dashboard' }) +}) + +export const Route = createFileRoute('/oauth/callback')({ + loader: async () => { + await handleCallback() + }, + component: () => null, +}) +``` + +The client secret and the tokens live only inside these server functions. The browser only ever holds Vantage's own signed session cookie. + +# Show the signed-in user {% #dashboard %} + +![Vantage dashboard showing the signed-in user's TaskFlow identity](/images/docs/oauth-server/guide/vantage-dashboard.avif) + +The dashboard reads the user from the session and renders it. Create `consumer/src/routes/dashboard.tsx`: + +```tsx +// consumer/src/routes/dashboard.tsx (loader) +import { createFileRoute, redirect } from '@tanstack/react-router' +import { createServerFn } from '@tanstack/react-start' +import { vantageSession, type UserInfo } from '../lib/oauth' + +const loadUser = createServerFn().handler(async (): Promise => { + const session = await vantageSession() + if (!session.data.user) throw redirect({ to: '/' }) + return session.data.user as UserInfo +}) + +export const Route = createFileRoute('/dashboard')({ + component: Dashboard, + loader: async () => ({ user: await loadUser() }), +}) +``` + +The component renders `user.name`, `user.email`, and `user.sub` from the loader data. That profile came from TaskFlow, through the authorization code flow you built. Run the whole thing next. diff --git a/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-7/+page.markdoc b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-7/+page.markdoc new file mode 100644 index 00000000000..4ffa7df73e5 --- /dev/null +++ b/src/routes/docs/partners/oauth-server/sign-in-with-your-product/step-7/+page.markdoc @@ -0,0 +1,57 @@ +--- +layout: tutorial +title: Run the flow +description: Start both apps and sign in with your product end to end. +step: 7 +--- + +Everything is in place. Run both apps and sign in. + +# Start both apps {% #start %} + +In two terminals: + +```sh +# in consumer/ +pnpm dev +``` + +```sh +# in provider/ +pnpm dev +``` + +Vantage is at `http://localhost:4100` and TaskFlow's consent screen at `http://localhost:4000`. + +# Sign in {% #sign-in %} + +Open `http://localhost:4100` and click **Sign in with TaskFlow**. You will: + +1. Land on TaskFlow's consent screen and sign in with a TaskFlow user. +2. See exactly what Vantage is requesting, and approve it. +3. Return to Vantage, signed in, with your TaskFlow name and email on the dashboard. + +That round trip is a complete OAuth 2.1 authorization code flow against your project's OAuth server. + +# What each side did {% #recap %} + +- **TaskFlow** enabled the OAuth server, registered Vantage as a confidential client, and hosted a consent screen that authenticates its users and approves grants. +- **Vantage** redirected to the authorize endpoint, exchanged the returned code for tokens on its server, and read the user's profile from userinfo. The client secret never left its server. + +Because the flow is standards-based, a real integrator does not have to use Appwrite or TanStack Start. Any OAuth or OpenID Connect client library pointed at your project's [discovery URL](/docs/partners/oauth-server/quick-start#discovery) works the same way. + +The full source for both apps is on GitHub at [appwrite-community/oauth-guide-taskflow](https://github.com/appwrite-community/oauth-guide-taskflow). + +# Next steps {% #next-steps %} + +{% cards %} +{% cards_item href="/docs/partners/oauth-server/tokens" title="Tokens" %} +Refresh access tokens, and revoke them on sign-out. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/scopes" title="Scopes" %} +Add custom scopes to represent permissions in your product. +{% /cards_item %} +{% cards_item href="/docs/partners/oauth-server/device-flow" title="Device flow" %} +Support TVs, CLIs, and other input-constrained devices. +{% /cards_item %} +{% /cards %} diff --git a/src/routes/docs/partners/oauth-server/tokens/+page.markdoc b/src/routes/docs/partners/oauth-server/tokens/+page.markdoc new file mode 100644 index 00000000000..91a8901fcef --- /dev/null +++ b/src/routes/docs/partners/oauth-server/tokens/+page.markdoc @@ -0,0 +1,348 @@ +--- +layout: article +title: Tokens +description: Access, refresh, and ID tokens issued by Appwrite's OAuth server, their lifetimes, and how to refresh, introspect, and revoke them. +back: /docs/partners/oauth-server +--- + +When a client redeems an authorization code, the OAuth server issues three tokens: an access token, a refresh token, and an ID token. This page covers what each one is, how long it lives, and how to refresh, validate, and revoke them. + +# The three tokens {% #tokens %} + +- **Access token.** A JWT the client sends to call APIs on the user's behalf. It is signed with your project's key (`RS256`) and carries the granted scopes. Present it as a `Bearer` token to the userinfo endpoint or your own resource server. +- **Refresh token.** An opaque token the client exchanges for a new access token when the old one expires, without sending the user through authorization again. +- **ID token.** A JWT from the OpenID Connect layer that identifies the user (subject, and any profile claims the granted scopes allow). Clients validate it against the server's published keys. + +# Exchange a code for tokens {% #exchange %} + +The client exchanges its authorization code at the token endpoint with `grantType: 'authorization_code'`. A confidential client sends its `clientSecret`; a public client sends its `codeVerifier` instead. + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createToken({ + grantType: '', + code: '', // optional + refreshToken: '', // optional + deviceCode: '', // optional + clientId: '', // optional + clientSecret: '', // optional + codeVerifier: '', // optional + redirectUri: 'https://example.com', // optional + resource: '' // optional +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + +Oauth2Token result = await oauth2.createToken( + grantType: '', + code: '', // optional + refreshToken: '', // optional + deviceCode: '', // optional + clientId: '', // optional + clientSecret: '', // optional + codeVerifier: '', // optional + redirectUri: 'https://example.com', // optional + resource: '', // optional +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let oauth2Token = try await oauth2.createToken( + grant_type: "", + code: "", // optional + refresh_token: "", // optional + device_code: "", // optional + client_id: "", // optional + client_secret: "", // optional + code_verifier: "", // optional + redirect_uri: "https://example.com", // optional + resource: "" // optional +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.createToken( + grant_type = "", + code = "", // (optional) + refresh_token = "", // (optional) + device_code = "", // (optional) + client_id = "", // (optional) + client_secret = "", // (optional) + code_verifier = "", // (optional) + redirect_uri = "https://example.com", // (optional) + resource = "", // (optional) +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.createToken( + "", // grant_type + "", // code (optional) + "", // refresh_token (optional) + "", // device_code (optional) + "", // client_id (optional) + "", // client_secret (optional) + "", // code_verifier (optional) + "https://example.com", // redirect_uri (optional) + "", // resource (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.createToken({ + grantType: '', + code: '', // optional + refreshToken: '', // optional + deviceCode: '', // optional + clientId: '', // optional + clientSecret: '', // optional + codeVerifier: '', // optional + redirectUri: 'https://example.com', // optional + resource: '' // optional +}); + +console.log(result); +``` +{% /multicode %} + +The response contains the access token, refresh token, ID token, granted scope, and the access token's lifetime in seconds. + +# Token lifetimes {% #lifetimes %} + +Lifetimes default by client type and are configurable per project on the **OAuth2 server** settings. + +| | Confidential | Public | +| --- | --- | --- | +| Access token | 8 hours | 1 hour | +| Refresh token | 365 days | 30 days | + +Public clients get shorter lifetimes because their tokens live on user devices, where the risk of theft is higher, so the window of exposure is kept small. + +# Refresh with rotation {% #refresh %} + +To refresh, the client calls the token endpoint with `grantType: 'refresh_token'` and its current refresh token. The response includes a **new** access token and a **new** refresh token. + +Refresh tokens rotate: each refresh invalidates the token that was used. If an old refresh token is presented again, the server treats it as a compromise and revokes the entire token family, forcing the user to reauthorize. This means a client must always store the newest refresh token it received. + +To refresh, reuse the `createToken` call with the refresh grant: + +```http +POST /v1/oauth2//token HTTP/1.1 +Host: .cloud.appwrite.io +Authorization: Basic +Content-Type: application/x-www-form-urlencoded + +grant_type=refresh_token&refresh_token= +``` + +# Validate tokens {% #validate %} + +Access and ID tokens are `RS256` JWTs signed with your project's key. A client validates them offline by fetching the server's public keys once from the JWKS endpoint and checking the signature, issuer, and expiry. + +```http +GET /v1/oauth2//.well-known/jwks.json HTTP/1.1 +Host: .cloud.appwrite.io +``` + +To read the user's profile from an access token, call the userinfo endpoint: + +```http +GET /v1/oauth2//userinfo HTTP/1.1 +Host: .cloud.appwrite.io +Authorization: Bearer +``` + +# Introspect a token {% #introspect %} + +A resource server can ask the OAuth server whether a token is still valid with the introspection endpoint. Introspection requires client authentication, so only confidential clients (or an API key with the `oauth2.read` scope) can call it. A public client, having no secret, cannot introspect. + +```http +POST /v1/oauth2//introspect HTTP/1.1 +Host: .cloud.appwrite.io +Authorization: Basic +Content-Type: application/x-www-form-urlencoded + +token= +``` + +A valid token returns `"active": true` with its scope, subject, and expiry. A revoked or expired token returns `"active": false`. + +# Revoke a token {% #revoke %} + +A client revokes a token it no longer needs with the revocation endpoint. Confidential clients authenticate with their secret; public clients revoke without one. + +{% multicode %} +```client-web +import { Client, Oauth2 } from 'appwrite'; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.revoke({ + token: '', + tokenTypeHint: 'access_token', // optional + clientId: '', // optional + clientSecret: '' // optional +}); + +console.log(result); +``` +```client-flutter +import 'package:appwrite/appwrite.dart'; + +Client client = Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +Oauth2 oauth2 = Oauth2(client); + + result = await oauth2.revoke( + token: '', + tokenTypeHint: 'access_token', // optional + clientId: '', // optional + clientSecret: '', // optional +); +``` +```client-apple +import Appwrite + +let client = Client() + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +let oauth2 = Oauth2(client) + +let result = try await oauth2.revoke( + token: "", + token_type_hint: "access_token", // optional + client_id: "", // optional + client_secret: "" // optional +) + +``` +```client-android-kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Oauth2 + +val client = Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("") // Your project ID + +val oauth2 = Oauth2(client) + +val result = oauth2.revoke( + token = "", + token_type_hint = "access_token", // (optional) + client_id = "", // (optional) + client_secret = "", // (optional) +) +``` +```client-android-java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Oauth2; + +Client client = new Client(context) + .setEndpoint("https://.cloud.appwrite.io/v1") // Your API Endpoint + .setProject(""); // Your project ID + +Oauth2 oauth2 = new Oauth2(client); + +oauth2.revoke( + "", // token + "access_token", // token_type_hint (optional) + "", // client_id (optional) + "", // client_secret (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + Log.d("Appwrite", result.toString()); + }) +); + +``` +```client-react-native +import { Client, Oauth2 } from "react-native-appwrite"; + +const client = new Client() + .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint + .setProject(''); // Your project ID + +const oauth2 = new Oauth2(client); + +const result = await oauth2.revoke({ + token: '', + tokenTypeHint: 'access_token', // optional + clientId: '', // optional + clientSecret: '' // optional +}); + +console.log(result); +``` +{% /multicode %} diff --git a/static/images/docs/oauth-server/dark/oauth2-server-apps-empty.avif b/static/images/docs/oauth-server/dark/oauth2-server-apps-empty.avif new file mode 100644 index 0000000000000000000000000000000000000000..ccfb9ddc613453ea004aebafdb86a706e450e08d GIT binary patch literal 25267 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 literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/dark/oauth2-server-apps-list.avif b/static/images/docs/oauth-server/dark/oauth2-server-apps-list.avif new file mode 100644 index 0000000000000000000000000000000000000000..44aaed98789a69d2976a5c24941ad3bdc6ef1111 GIT binary patch literal 26947 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 H2QA!yHIw1j literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/dark/oauth2-server-create-app.avif b/static/images/docs/oauth-server/dark/oauth2-server-create-app.avif new file mode 100644 index 0000000000000000000000000000000000000000..a38ed59cfced29c781c521ab2c33dd606be79c58 GIT binary patch literal 24357 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

v0QBWxKO`Yr#E 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 literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-discovery.avif b/static/images/docs/oauth-server/oauth2-server-discovery.avif new file mode 100644 index 0000000000000000000000000000000000000000..123e7ff34f08d99157cd96b8d80bee6c4b6a7568 GIT binary patch literal 35800 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

|hS9UG9Te>CX>DyjV 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 aA}t4KMt_7we|6MAmw3B28av* literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-secret-created.avif b/static/images/docs/oauth-server/oauth2-server-secret-created.avif new file mode 100644 index 0000000000000000000000000000000000000000..186bb07bc3e31eed197527f413cbf22249474cb8 GIT binary patch literal 15143 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 Cuq&ki literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-settings-disabled.avif b/static/images/docs/oauth-server/oauth2-server-settings-disabled.avif new file mode 100644 index 0000000000000000000000000000000000000000..63783ca245803707b376a4368962e7b38d3a843c GIT binary patch literal 21061 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 OI}+%je9bxFFO%fI@)8*U literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-token-lifetimes.avif b/static/images/docs/oauth-server/oauth2-server-token-lifetimes.avif new file mode 100644 index 0000000000000000000000000000000000000000..8266beb4b4dd02000ad0188e04488cf5a589e1c5 GIT binary patch literal 35339 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 gfaxA!<{

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 Kg7?r24}*}P_|N+Q literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/dark/oauth2-server-settings.avif b/static/images/docs/oauth-server/dark/oauth2-server-settings.avif new file mode 100644 index 0000000000000000000000000000000000000000..de48efaec8e83dfc05ea099b0612a6c98fe63abd GIT binary patch literal 31883 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 JbtuP%ND6P5u`I008>m1X}n{A=q2ETl~)h3;_Z0 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 literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/guide/vantage-dashboard.avif b/static/images/docs/oauth-server/guide/vantage-dashboard.avif new file mode 100644 index 0000000000000000000000000000000000000000..914c30a57ccfb56263da3c71c1fe5273a1a3b6ed GIT binary patch literal 16679 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 literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-apps-empty.avif b/static/images/docs/oauth-server/oauth2-server-apps-empty.avif new file mode 100644 index 0000000000000000000000000000000000000000..9b21288189d3e206f8c491872dd1ec827a723a29 GIT binary patch literal 24515 zcmXu|V~{Ys(lv~ZZQHhO+qUg%Y}>YN+qP}n_I&q#&UrhPUZ_=-{+Uz&003~zoIM;2 zT`kQ3{wrHcGsgdMTT8?L=~Y`(XT$&b{}rKyiH+0$j{*QVSQise5C)BlA406_oSKnwph1P4oZ%l|pR5D*am0h*!(JVJYQpk%4{` ^V6Hoa*43zN!>j+L5< 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 OXT-L`n?o#yBZ!S}3}IOS literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-apps-list.avif b/static/images/docs/oauth-server/oauth2-server-apps-list.avif new file mode 100644 index 0000000000000000000000000000000000000000..9980ef09d76f91246e4452df602bb997a78db418 GIT binary patch literal 25399 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 SX&16p0Uu~MEg6}EKT1HI4*Dzr literal 0 HcmV?d00001 diff --git a/static/images/docs/oauth-server/oauth2-server-create-app.avif b/static/images/docs/oauth-server/oauth2-server-create-app.avif new file mode 100644 index 0000000000000000000000000000000000000000..76a620c6698d7f75127ed421989532184037faa0 GIT binary patch literal 22852 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