Register a client under Access → OAuth Clients first. Confidential clients
return a one-time client_secret; public clients use PKCE with no secret. The
redirect URI must match the one you registered.
import { FusedAuthClient } from "fused-auth";const client = new FusedAuthClient({ issuer: "https://engine.example.com", clientId: "foc_...", clientSecret: "fos_...", // omit for public clients redirectUri: "https://app.example.com/oauth/callback",});// 1. Start the flow and send the user's browser to `url`.const { url, state, codeVerifier } = await client.authorizeUrl({ scopes: ["service.consume"],});// 2. On the callback, exchange the code.const tokens = await client.exchangeCode(code, codeVerifier);// 3. Refresh and revoke as needed.const refreshed = await client.refresh(tokens.refresh_token!);await client.revoke(refreshed.access_token);
from fused.fused_auth import FusedAuthClient, FusedAuthConfigclient = FusedAuthClient(FusedAuthConfig( issuer="https://engine.example.com", client_id="foc_...", client_secret="fos_...", # omit for public clients redirect_uri="https://app.example.com/oauth/callback",))# 1. Start the flow and send the user's browser to `req.url`.req = client.authorize_url(scopes=["service.consume"])# 2. On the callback, exchange the code.tokens = client.exchange_code(code, req.code_verifier)# 3. Refresh and revoke as needed.refreshed = client.refresh(tokens.refresh_token)client.revoke(refreshed.access_token)
All paths are relative to issuer (your Fused deployment’s public URL):
Operation
URL
Discovery
{issuer}/.well-known/oauth-authorization-server
Authorize
{issuer}/oauth/authorize
Token (code + refresh)
{issuer}/oauth/token
Revoke
{issuer}/oauth/revoke
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Fused","description":"Fused - Connect Your APIs Once, Use Everywhere. Bring internal, partner, and third-party APIs into Fused and control how your teams, apps, and AI agents use them.","colors":{"primary":"#040404"},"favicon":"https://media.brand.dev/1bebb410-f7fb-43b3-b789-6dd6c0d59d42.svg","navbar":{"links":[{"href":"https://github.com/Usefused/harnest","label":"Harnest"},{"href":"https://github.com/Usefused/cli","label":"CLI"},{"href":"https://github.com/Usefused/engine","label":"Fused"}],"primary":{"type":"button","label":"Get Access","href":"https://usefused.com/signup"}},"footer":{"socials":{"x":"https://x.com/usefused","github":"https://github.com/Usefused"},"links":[{"header":"Source","items":[{"label":"Harnest","href":"https://github.com/Usefused/harnest"},{"label":"Harnest releases","href":"https://github.com/Usefused/harnest/releases"},{"label":"Fused CLI","href":"https://github.com/Usefused/cli"},{"label":"Fused","href":"https://github.com/Usefused/engine"},{"label":"Fused releases","href":"https://github.com/Usefused/engine/releases"}]},{"header":"Fused","items":[{"label":"Home","href":"https://usefused.com"},{"label":"Pricing","href":"https://usefused.com/pricing"},{"label":"Contact","href":"https://usefused.com/?plan=enterprise"}]}]},"seo":{"metatags":{"fused":"usefused.com","harnest":"https://github.com/usefused/harnest"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fused","hasAudioNarration":false,"actualSubdomain":"fused","customDomains":["usefused.com"],"gitSource":{"type":"github","owner":"usefused","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aefcb0869e61846fb38cb9a","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Harnest","count":164},{"language":"default","tag":"Guides","count":119},{"language":"default","tag":"API reference","count":54},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"Runtime","count":35},{"language":"default","tag":"Build agents","count":31},{"language":"default","tag":"Advanced","count":25},{"language":"default","tag":"Apps","count":15},{"language":"default","tag":"Tools and integrations","count":13},{"language":"default","tag":"Tasks and runtime","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width: 1024px){#sidebar-content{width:18rem;border-right:1px solid color-mix(in srgb, currentColor 12%, transparent)}#body-content{padding-left:18rem}#content-area{max-width:64rem;margin-inline:auto}}"}],"page":{"pagePath":"app/fused-auth-client","slug":"/app/fused-auth-client","pageMetadata":{"title":"Authenticate into Fused","description":"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.","href":"/app/fused-auth-client"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Table,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Direct OAuth 2.0 client for Fused’s own authorization server. Download the fixed\n`,_jsx(_components.code,{children:`fused-auth`}),` package:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`fused-cli`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` app`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` auth-client`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --language`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ts`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # TypeScript, npm package \"fused-auth\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`fused-cli`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` app`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` auth-client`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --language`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` python`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Python, import \"fused.fused_auth\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Register a client under `,_jsx(_components.strong,{children:`Access → OAuth Clients`}),` first. Confidential clients\nreturn a one-time `,_jsx(_components.code,{children:`client_secret`}),`; public clients use PKCE with no secret. The\nredirect URI must match the one you registered.`]}),`\n`,_jsx(Heading,{level:`2`,id:`sign-a-user-in`,children:`Sign a user in`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`TypeScript`,id:`typescript`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`20`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`FusedAuthClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fused-auth\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` FusedAuthClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` issuer:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://engine.example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` clientId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"foc_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` clientSecret:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fos_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// omit for public clients`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` redirectUri:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://app.example.com/oauth/callback\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:\"// 1. Start the flow and send the user's browser to `url`.\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`state`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`codeVerifier`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`authorizeUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` scopes:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"service.consume\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 2. On the callback, exchange the code.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` tokens`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`exchangeCode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`code`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`codeVerifier`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// 3. Refresh and revoke as needed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` refreshed`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`refresh`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`tokens`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`refresh_token`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`revoke`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`refreshed`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`access_token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})}),_jsx(Tab,{title:`Python`,id:`python`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` fused.fused_auth `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FusedAuthClient, FusedAuthConfig`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` FusedAuthClient(FusedAuthConfig(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` issuer`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://engine.example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` client_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"foc_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` client_secret`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"fos_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# omit for public clients`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` redirect_uri`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://app.example.com/oauth/callback\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:\"# 1. Start the flow and send the user's browser to `req.url`.\"})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`req `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.authorize_url(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`scopes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"service.consume\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# 2. On the callback, exchange the code.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`tokens `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.exchange_code(code, req.code_verifier)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# 3. Refresh and revoke as needed.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`refreshed `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.refresh(tokens.refresh_token)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.revoke(refreshed.access_token)`})}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`endpoints`,children:`Endpoints`}),`\n`,_jsxs(_components.p,{children:[`All paths are relative to `,_jsx(_components.code,{children:`issuer`}),` (your Fused deployment’s public URL):`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Operation`}),_jsx(_components.th,{children:`URL`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Discovery`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{issuer}/.well-known/oauth-authorization-server`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Authorize`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{issuer}/oauth/authorize`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Token (code + refresh)`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{issuer}/oauth/token`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Revoke`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{issuer}/oauth/revoke`})})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Authenticate into Fused","description":"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.","href":"/app/fused-auth-client"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Sign a user in","slug":"sign-a-user-in","depth":2,"children":[]},{"title":"Endpoints","slug":"endpoints","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"fused","siteName":"Fused","title":"Authenticate into Fused - Fused","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-13T11:26:07.840Z","originalFileLocation":"app/fused-auth-client.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fused\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://media.brand.dev/1bebb410-f7fb-43b3-b789-6dd6c0d59d42.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://media.brand.dev/1bebb410-f7fb-43b3-b789-6dd6c0d59d42.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://media.brand.dev/1bebb410-f7fb-43b3-b789-6dd6c0d59d42.svg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://media.brand.dev/1bebb410-f7fb-43b3-b789-6dd6c0d59d42.svg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authenticate into Fused - Fused\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fused\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://usefused.com/docs/app/fused-auth-client\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fused.mintlify.site/docs/_mintlify/api/og/v2?division=Apps\u0026amp;title=Authenticate+into+Fused\u0026amp;description=Use+the+built-in+Fused+Auth+client+to+sign+a+user+into+Fused+with+OAuth+and+act+on+their+behalf.\u0026amp;theme=88eddf090a69b720ff94a863\u0026amp;signature=d96a3de804cf6073e7ae467f85fc5fc0ba8c6b32ef007086ceeed4f5744523b7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authenticate into Fused - Fused\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fused.mintlify.site/docs/_mintlify/api/og/v2?division=Apps\u0026amp;title=Authenticate+into+Fused\u0026amp;description=Use+the+built-in+Fused+Auth+client+to+sign+a+user+into+Fused+with+OAuth+and+act+on+their+behalf.\u0026amp;theme=88eddf090a69b720ff94a863\u0026amp;signature=d96a3de804cf6073e7ae467f85fc5fc0ba8c6b32ef007086ceeed4f5744523b7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/fused/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fused\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#040404\">\u003cmeta data-mint-head name=\"fused\" content=\"usefused.com\">\u003cmeta data-mint-head name=\"harnest\" content=\"https://github.com/usefused/harnest\">\u003clink data-mint-head rel=\"canonical\" href=\"https://usefused.com/docs/app/fused-auth-client\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/app/fused-auth-client.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://usefused.com/#organization\",\"name\":\"Fused\",\"url\":\"https://usefused.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://usefused.com/docs#website\",\"name\":\"Fused\",\"url\":\"https://usefused.com/docs\",\"publisher\":{\"@id\":\"https://usefused.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://usefused.com/docs/app/fused-auth-client#webpage\",\"url\":\"https://usefused.com/docs/app/fused-auth-client\",\"name\":\"Authenticate into Fused\",\"description\":\"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.\",\"dateModified\":\"2026-10-13T11:26:07.840Z\",\"isPartOf\":{\"@id\":\"https://usefused.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://usefused.com/docs/app/fused-auth-client#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://usefused.com/docs/app/fused-auth-client#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://usefused.com/docs/workspace/enable-a-service\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apps\",\"item\":\"https://usefused.com/docs/mcp/deploy-a-server\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Authenticate into Fused\",\"item\":\"https://usefused.com/docs/app/fused-auth-client\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://usefused.com/docs/app/fused-auth-client#article\",\"headline\":\"Authenticate into Fused\",\"name\":\"Authenticate into Fused\",\"description\":\"Use the built-in Fused Auth client to sign a user into Fused with OAuth and act on their behalf.\",\"url\":\"https://usefused.com/docs/app/fused-auth-client\",\"mainEntityOfPage\":{\"@id\":\"https://usefused.com/docs/app/fused-auth-client#webpage\"},\"dateModified\":\"2026-10-13T11:26:07.840Z\",\"publisher\":{\"@id\":\"https://usefused.com/#organization\"},\"isPartOf\":{\"@id\":\"https://usefused.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fused\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Fused","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"API integrations with Fused","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Get Fused running","sidebarTitle":"Get Fused running","href":"/deploy-an-engine"},{"title":"Use Fused Cloud","sidebarTitle":"Fused Cloud","href":"/setup/fused-cloud"},{"title":"Self-host Fused","sidebarTitle":"Self-hosted Fused","href":"/setup/self-hosted"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/quickstart"}]},{"group":"Guides","pages":[{"group":"Workspace","expanded":false,"pages":[{"title":"Enable a service","href":"/workspace/enable-a-service"},{"title":"Use a Managed service","href":"/workspace/use-managed-service"},{"title":"Bring your own API in","href":"/workspace/bring-your-own-api"}]},{"group":"Apps","expanded":false,"pages":[{"title":"Deploy an MCP server","href":"/mcp/deploy-a-server"},{"group":"Unified Apps","pages":[{"title":"Unified Apps","href":"/app/unified-apps"},{"title":"Write a Unified App","sidebarTitle":"Write the code","href":"/app/unified-apps/write-code"},{"title":"Update or roll back an app","sidebarTitle":"Versions","href":"/app/unified-apps/versions"},{"title":"Run an app on a schedule","sidebarTitle":"Schedules","href":"/app/unified-apps/schedules"},{"title":"Automatic snapshots and recovery","sidebarTitle":"Snapshots and recovery","href":"/app/unified-apps/recovery"},{"title":"Call from an SDK, MCP, or another app","sidebarTitle":"SDK, MCP, and app calls","href":"/app/unified-apps/use-from-apps"},{"title":"Read results and debug failures","sidebarTitle":"Results and debugging","href":"/app/unified-apps/results-and-debugging"}]},{"title":"Build an SDK","href":"/app/build-an-sdk"},{"title":"Call over REST","href":"/app/testing/over-rest"},{"title":"Create or update from a goal","href":"/app/from-a-prompt"},{"title":"Use it in your app","sidebarTitle":"Use it in your app","href":"/app/use-in-your-app"},{"title":"Run an operation","description":"Call an approved operation from your application and handle what comes back.","href":"/app/run-an-operation"},{"title":"Authenticate into Fused","href":"/app/fused-auth-client"},{"title":"Manage MCP servers programmatically","description":"Use the built-in Fused Admin client to list and deploy MCP servers and mint execution tokens with an OAuth access token.","href":"/app/fused-admin-client"}]},{"group":"MCP","expanded":false,"pages":[{"title":"Receive MCP events","href":"/mcp/receive-events"},{"group":"Connect an MCP client","pages":[{"title":"Connect an MCP client","href":"/mcp/use-the-server"},{"group":"Provider OAuth","pages":[{"title":"Handle provider OAuth","sidebarTitle":"Provider OAuth","href":"/mcp/use-the-server/provider-oauth"},{"title":"Request authentication","sidebarTitle":"Request authentication","href":"/mcp/use-the-server/provider-oauth/request-authentication"},{"title":"Handle completion and resume the agent","sidebarTitle":"Completion and agent resumption","href":"/mcp/use-the-server/provider-oauth/handle-completion"}]}]}]},{"group":"Bucket","expanded":false,"pages":[{"title":"Store credentials","href":"/bucket/store-credentials"},{"title":"Connect a user's account","href":"/bucket/connect-user-accounts"}]}]},{"group":"Advanced","pages":[{"title":"Control the workflow","href":"/advanced/control-the-workflow"},{"group":"Workspace governance","expanded":false,"pages":[{"title":"Manage versions and deprecation","href":"/workspace/manage-versions"},{"title":"Handle provider limits and failures","href":"/workspace/handle-provider-limits"},{"title":"Share access with teams","href":"/workspace/share-access"}]},{"group":"SDK delivery and execution","expanded":false,"pages":[{"title":"Ship a new version","href":"/app/ship-a-new-version"},{"title":"Receive SDK events","href":"/app/receive-events"},{"title":"Issue execution tokens","href":"/app/issue-tokens"},{"title":"Test from the CLI","href":"/app/testing/from-the-cli"}]},{"group":"MCP security","expanded":false,"pages":[{"title":"Create a token for an agent","href":"/mcp/agent-tokens"},{"title":"Tokens for OAuth services","href":"/mcp/oauth-tokens"}]},{"group":"Credential governance","expanded":false,"pages":[{"title":"Share a bucket","href":"/bucket/share-a-bucket"}]}]},{"group":"Reference","pages":[{"title":"Know when something changes","sidebarTitle":"Notifications","href":"/notifications"}]}]},{"tab":"Harnest","pages":[{"title":"Harnest","href":"/harnest/overview"}]},{"tab":"Blog","icon":"newspaper","href":"https://usefused.com/blog"}]},"basePath":"","title":"Authenticate into Fused - Fused","buildId":"dpl_6dVqRXFR2Go5vF5RLvAdHuv189oT","deploymentId":"dpl_6dVqRXFR2Go5vF5RLvAdHuv189oT","dynamics":[],"chunks":[]}