+
+
diff --git a/e2e/dpop/vue/src/main.ts b/e2e/dpop/vue/src/main.ts
new file mode 100644
index 0000000..5a9d322
--- /dev/null
+++ b/e2e/dpop/vue/src/main.ts
@@ -0,0 +1,16 @@
+import { createApp } from 'vue';
+import FusionAuthVuePlugin from '@fusionauth/vue-sdk';
+import App from './App.vue';
+
+const appUrl = 'https://vue.fusionauth-dpop.orb.local';
+
+createApp(App)
+ .use(FusionAuthVuePlugin, {
+ clientId: import.meta.env.VITE_CLIENT_ID,
+ dpopTokenStorage: 'localStorage',
+ postLogoutRedirectUri: appUrl,
+ redirectUri: appUrl,
+ serverUrl: 'https://local.fusionauth.io',
+ useDpop: true,
+ })
+ .mount('#app');
diff --git a/e2e/dpop/vue/tsconfig.json b/e2e/dpop/vue/tsconfig.json
new file mode 100644
index 0000000..f5ecf80
--- /dev/null
+++ b/e2e/dpop/vue/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "compilerOptions": {
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "noEmit": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "target": "ES2022",
+ "types": ["vite/client"]
+ },
+ "include": ["src/**/*.ts", "src/**/*.vue"]
+}
diff --git a/e2e/dpop/vue/vite.config.ts b/e2e/dpop/vue/vite.config.ts
new file mode 100644
index 0000000..7b6cf7e
--- /dev/null
+++ b/e2e/dpop/vue/vite.config.ts
@@ -0,0 +1,6 @@
+import vue from '@vitejs/plugin-vue';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ plugins: [vue()],
+});
diff --git a/packages/sdk-angular/docs/README.md b/packages/sdk-angular/docs/README.md
index 179c520..f779f41 100644
--- a/packages/sdk-angular/docs/README.md
+++ b/packages/sdk-angular/docs/README.md
@@ -1,17 +1,250 @@
@fusionauth/angular-sdk / [Exports](modules.md)
-# FusionauthAngularSdk
+An SDK for using FusionAuth in Angular applications.
-This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.
+# Table of Contents
-## Build
+- [Overview](#overview)
+- [Getting Started](#getting-started)
+- [Quickstart](#quickstart)
+- [Installation](#installation)
+- [Usage](#usage)
+- [FusionAuthService](#fusionauthservice)
+- [Pre-built buttons](#pre-built-buttons)
+- [State Parameter](#state-parameter)
+- [SSR](#ssr)
+- [DPoP Mode](#dpop-mode)
+- [Known issues](#known-issues)
+- [Documentation](#documentation)
+- [Releases](#releases)
-Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
+
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
+# Overview
-## Further help
+
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
+This SDK helps manage authentication state for your Angular app and provides functionality to login, register, and logout users. It also can be configured to automatically manage your refresh token.
+
+Your users will be sent to FusionAuth’s themeable hosted login pages and
+then log in. After that, they are sent back to your Angular application.
+
+Once authentication succeeds, the following secure, HTTP-only cookies
+will be set:
+
+- `app.at` - an OAuth [Access
+ Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#access-token)
+
+- `app.rt` - a [Refresh
+ Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#refresh-token)
+ used to obtain a new `app.at`. This cookie will only be set if
+ refresh tokens are enabled on your FusionAuth instance.
+
+The access token can be presented to APIs to authorize the request and
+the refresh token can be used to get a new access token.
+
+There are 2 ways to interact with this SDK:
+
+1. By hosting your own server that performs the OAuth token exchange and meets the [server code requirements for FusionAuth Web SDKs](https://github.com/FusionAuth/fusionauth-javascript-sdk-express#server-code-requirements).
+2. By using the server hosted on your FusionAuth instance, i.e., not writing your own server code.
+
+If you are hosting your own server, see [server code requirements](https://github.com/FusionAuth/fusionauth-javascript-sdk-express#server-code-requirements).
+
+You can use this library against any version of FusionAuth or any OIDC
+compliant identity server.
+
+## Getting Started
+
+If you are new to Angular development, you may want to start with the Quickstart guide. If you are already familiar with Angular development, skip to the Installation section.
+
+### Quickstart
+
+See the [FusionAuth Angular Quickstart](https://fusionauth.io/docs/quickstarts/quickstart-javascript-angular-web) for a full tutorial on using FusionAuth and Angular.
+
+### Installation
+
+NPM:
+
+```bash
+npm install @fusionauth/angular-sdk
+```
+
+Yarn:
+
+```bash
+yarn add @fusionauth/angular-sdk
+```
+
+### Configuring FusionAuthModule
+
+```typescript
+import { NgModule } from '@angular/core';
+import { BrowserModule } from '@angular/platform-browser';
+
+import { AppRoutingModule } from './app-routing.module';
+import { FusionAuthModule } from '@fusionauth/angular-sdk';
+
+@NgModule({
+ declarations: [],
+ imports: [
+ FusionAuthModule.forRoot({
+ clientId: '', // Your FusionAuth client ID
+ serverUrl: '', // The base URL of the server that performs the token exchange
+ redirectUri: '', // The URI that the user is directed to after the login/register/logout action
+ shouldAutoRefresh: true, // option to configure the SDK to automatically handle token refresh. Defaults to false if not specified here.
+ // useDpop: true, // Opt-in to DPoP mode. See "DPoP Mode" below. Defaults to false.
+ }),
+ ],
+ providers: [],
+ bootstrap: [],
+})
+export class AppModule {}
+```
+
+## Usage
+
+### FusionAuthService
+
+The injectable `FusionAuthService` class provides observable properties to which components may subscribe.
+
+Note, you can also use the non-observable `getUserInfo` method if you wish to implement your observables.
+
+```typescript
+class AppComponent implements OnInit, OnDestroy {
+ private fusionAuthService: FusionAuthService = inject(FusionAuthService);
+
+ isLoggedIn: boolean = this.fusionAuthService.isLoggedIn();
+ userInfo: UserInfo | null = null;
+ isGettingUserInfo: boolean = false;
+ subscription?: Subscription;
+
+ ngOnInit(): void {
+ if (this.isLoggedIn) {
+ this.subscription = this.fusionAuthService
+ .getUserInfoObservable({
+ onBegin: () => (this.isGettingUserInfo = true),
+ onDone: () => (this.isGettingUserInfo = false),
+ })
+ .subscribe({
+ next: userInfo => (this.userInfo = userInfo),
+ error: error => console.error(error),
+ });
+ }
+ }
+
+ ngOnDestroy(): void {
+ this.subscription?.unsubscribe();
+ }
+}
+```
+
+### Pre-built buttons
+
+There are three pre-styled buttons that are configured to perform
+login/logout/registration. They can be placed anywhere in your app as
+is.
+
+```typescript
+import { Component } from '@angular/core';
+
+@Component({
+ selector: 'app-login',
+ template: ``,
+ styleUrls: [],
+})
+export class LoginComponent {}
+
+@Component({
+ selector: 'app-logout',
+ template: ``,
+ styleUrls: [],
+})
+export class LogoutComponent {}
+
+@Component({
+ selector: 'app-register',
+ template: ``,
+ styleUrls: [],
+})
+export class RegisterComponent {}
+```
+
+#### State parameter
+
+The `startLogin` and `startRegistration` functions both accept an optional string
+parameter called `state`. The login and register components can also be passed the
+state as an input. The state that is passed in to the function call will be echoed
+back in the state query parameter of the callback uri specified in `redirectUri` on
+the `FusionAuthConfig` used to initialize the `FusionAuthModule`. Though you may
+pass any value you would like for the state parameter, it is often used to indicate
+which page the user was on before redirecting to login or registration, so that the
+user can be returned to that location after a successful authentication.
+
+#### SSR
+
+The SDK supports Angular applications using SSR. No additional configuration is needed.
+
+### DPoP Mode
+
+By default, the SDK calls a Hosted Backend that stores tokens in HttpOnly cookies (`useDpop: false`, the default). In DPoP mode, the SDK instead calls FusionAuth endpoints directly and binds tokens to a private key generated in the browser. Enable it by setting `useDpop: true` on `FusionAuthConfig`:
+
+```typescript
+FusionAuthModule.forRoot({
+ clientId: '',
+ serverUrl: '',
+ redirectUri: '',
+ useDpop: true, // Opt-in to DPoP mode.
+ dpopTokenStorage: 'localStorage', // 'localStorage' (default, persists across reloads) or 'memory'.
+}),
+```
+
+When `useDpop: true`, `FusionAuthService` additionally exposes `dpopFetch()`, `generateProof()`, and `getAccessToken()`. These throw a descriptive error if called when `useDpop` is not enabled.
+
+```typescript
+class AppComponent {
+ private fusionAuthService: FusionAuthService = inject(FusionAuthService);
+
+ async callApi() {
+ // Recommended — handles attaching DPoP headers (and nonce retries) automatically.
+ const response = await this.fusionAuthService.dpopFetch(
+ 'https://api.example.com/data',
+ { method: 'GET' },
+ );
+
+ // For axios or other HTTP libraries that can't use dpopFetch.
+ const accessToken = this.fusionAuthService.getAccessToken();
+ const proof = await this.fusionAuthService.generateProof(
+ 'https://api.example.com/data',
+ 'GET',
+ accessToken ?? undefined,
+ );
+ // axios.get('https://api.example.com/data', {
+ // headers: { Authorization: `DPoP ${accessToken}`, DPoP: proof }
+ // });
+ }
+}
+```
+
+### Known Issues
+
+None.
+
+## Documentation
+
+[Full library documentation](https://github.com/FusionAuth/fusionauth-javascript-sdk/tree/main/packages/sdk-angular/docs)
+
+
+
+Use backticks for code in this readme. This readme is included on the FusionAuth website, and backticks show the code in the best light there.
+
+## Releases
+
+To perform a release to NPM, create a release on GitHub. That will automatically publish a release to GitHub.
diff --git a/packages/sdk-angular/docs/classes/FusionAuthAccountButtonComponent.md b/packages/sdk-angular/docs/classes/FusionAuthAccountButtonComponent.md
index 476907d..23b908c 100644
--- a/packages/sdk-angular/docs/classes/FusionAuthAccountButtonComponent.md
+++ b/packages/sdk-angular/docs/classes/FusionAuthAccountButtonComponent.md
@@ -34,7 +34,7 @@
#### Defined in
-[lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts#L10)
+[lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts:11](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts#L11)
## Properties
@@ -44,7 +44,7 @@
#### Defined in
-[lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts#L10)
+[lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts:11](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts#L11)
## Methods
@@ -58,4 +58,4 @@
#### Defined in
-[lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts:12](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts#L12)
+[lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-account.button/fusion-auth-account-button.component.ts#L13)
diff --git a/packages/sdk-angular/docs/classes/FusionAuthLoginButtonComponent.md b/packages/sdk-angular/docs/classes/FusionAuthLoginButtonComponent.md
index 0722cf8..8c1ddd7 100644
--- a/packages/sdk-angular/docs/classes/FusionAuthLoginButtonComponent.md
+++ b/packages/sdk-angular/docs/classes/FusionAuthLoginButtonComponent.md
@@ -35,7 +35,7 @@
#### Defined in
-[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:12](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L12)
+[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L13)
## Properties
@@ -45,7 +45,7 @@
#### Defined in
-[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:12](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L12)
+[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L13)
---
@@ -55,7 +55,7 @@
#### Defined in
-[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L10)
+[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:11](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L11)
## Methods
@@ -69,4 +69,4 @@
#### Defined in
-[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:14](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L14)
+[lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-login.button/fusion-auth-login-button.component.ts#L15)
diff --git a/packages/sdk-angular/docs/classes/FusionAuthLogoutButtonComponent.md b/packages/sdk-angular/docs/classes/FusionAuthLogoutButtonComponent.md
index fec4fe4..d5f9108 100644
--- a/packages/sdk-angular/docs/classes/FusionAuthLogoutButtonComponent.md
+++ b/packages/sdk-angular/docs/classes/FusionAuthLogoutButtonComponent.md
@@ -34,7 +34,7 @@
#### Defined in
-[lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts#L10)
+[lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts:14](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts#L14)
## Properties
@@ -44,7 +44,7 @@
#### Defined in
-[lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts#L10)
+[lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts:14](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts#L14)
## Methods
@@ -58,4 +58,4 @@
#### Defined in
-[lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts:12](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts#L12)
+[lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts:16](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-logout.button/fusion-auth-logout-button.component.ts#L16)
diff --git a/packages/sdk-angular/docs/classes/FusionAuthModule.md b/packages/sdk-angular/docs/classes/FusionAuthModule.md
index 7465f17..93ecd29 100644
--- a/packages/sdk-angular/docs/classes/FusionAuthModule.md
+++ b/packages/sdk-angular/docs/classes/FusionAuthModule.md
@@ -40,4 +40,4 @@
#### Defined in
-[lib/fusion-auth.module.ts:26](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.module.ts#L26)
+[lib/fusion-auth.module.ts:26](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.module.ts#L26)
diff --git a/packages/sdk-angular/docs/classes/FusionAuthRegisterButtonComponent.md b/packages/sdk-angular/docs/classes/FusionAuthRegisterButtonComponent.md
index 8b75c77..157269c 100644
--- a/packages/sdk-angular/docs/classes/FusionAuthRegisterButtonComponent.md
+++ b/packages/sdk-angular/docs/classes/FusionAuthRegisterButtonComponent.md
@@ -35,7 +35,7 @@
#### Defined in
-[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:12](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L12)
+[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:16](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L16)
## Properties
@@ -45,7 +45,7 @@
#### Defined in
-[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:12](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L12)
+[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:16](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L16)
---
@@ -55,7 +55,7 @@
#### Defined in
-[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L10)
+[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:14](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L14)
## Methods
@@ -69,4 +69,4 @@
#### Defined in
-[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:14](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L14)
+[lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts:18](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/components/fusionauth-register.button/fusion-auth-register-button.component.ts#L18)
diff --git a/packages/sdk-angular/docs/classes/FusionAuthService.md b/packages/sdk-angular/docs/classes/FusionAuthService.md
index 3ca445c..c05c31c 100644
--- a/packages/sdk-angular/docs/classes/FusionAuthService.md
+++ b/packages/sdk-angular/docs/classes/FusionAuthService.md
@@ -21,10 +21,14 @@ Service class to use with FusionAuth backend endpoints.
- [autoRefreshTimer](FusionAuthService.md#autorefreshtimer)
- [core](FusionAuthService.md#core)
- [isLoggedIn$](FusionAuthService.md#isloggedin$)
-- [isLoggedInSubject](FusionAuthService.md#isloggedinsubject)
+- [isLoggedInSignal](FusionAuthService.md#isloggedinsignal)
+- [isLoggedInState](FusionAuthService.md#isloggedinstate)
### Methods
+- [dpopFetch](FusionAuthService.md#dpopfetch)
+- [generateProof](FusionAuthService.md#generateproof)
+- [getAccessToken](FusionAuthService.md#getaccesstoken)
- [getUserInfo](FusionAuthService.md#getuserinfo)
- [getUserInfoObservable](FusionAuthService.md#getuserinfoobservable)
- [initAutoRefresh](FusionAuthService.md#initautorefresh)
@@ -60,7 +64,7 @@ Service class to use with FusionAuth backend endpoints.
#### Defined in
-[lib/fusion-auth.service.ts:21](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L21)
+[lib/fusion-auth.service.ts:29](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L29)
## Properties
@@ -70,7 +74,7 @@ Service class to use with FusionAuth backend endpoints.
#### Defined in
-[lib/fusion-auth.service.ts:18](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L18)
+[lib/fusion-auth.service.ts:26](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L26)
---
@@ -80,7 +84,7 @@ Service class to use with FusionAuth backend endpoints.
#### Defined in
-[lib/fusion-auth.service.ts:17](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L17)
+[lib/fusion-auth.service.ts:25](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L25)
---
@@ -92,20 +96,110 @@ An observable representing whether the user is logged in.
#### Defined in
-[lib/fusion-auth.service.ts:44](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L44)
+[lib/fusion-auth.service.ts:58](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L58)
---
-### isLoggedInSubject
+### isLoggedInSignal
-• `Private` **isLoggedInSubject**: `BehaviorSubject`\<`boolean`\>
+• **isLoggedInSignal**: `Signal`\<`boolean`\>
+
+A Signal representing whether the user is logged in.
+
+#### Defined in
+
+[lib/fusion-auth.service.ts:63](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L63)
+
+---
+
+### isLoggedInState
+
+• `Private` **isLoggedInState**: `WritableSignal`\<`boolean`\>
#### Defined in
-[lib/fusion-auth.service.ts:19](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L19)
+[lib/fusion-auth.service.ts:27](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L27)
## Methods
+### dpopFetch
+
+▸ **dpopFetch**(`input`, `init?`): `Promise`\<`Response`\>
+
+DPoP mode `fetch()` wrapper that automatically attaches DPoP proof
+headers.
+
+#### Parameters
+
+| Name | Type |
+| :------ | :--------------------- |
+| `input` | `URL` \| `RequestInfo` |
+| `init?` | `RequestInit` |
+
+#### Returns
+
+`Promise`\<`Response`\>
+
+**`Throws`**
+
+if called when `useDpop` is not enabled.
+
+#### Defined in
+
+[lib/fusion-auth.service.ts:163](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L163)
+
+---
+
+### generateProof
+
+▸ **generateProof**(`htu`, `htm`, `accessToken?`, `nonce?`): `Promise`\<`string`\>
+
+Returns a signed DPoP proof JWT for use with axios or other
+HTTP libraries that can't use [dpopFetch](FusionAuthService.md#dpopfetch).
+
+#### Parameters
+
+| Name | Type |
+| :------------- | :------- |
+| `htu` | `string` |
+| `htm` | `string` |
+| `accessToken?` | `string` |
+| `nonce?` | `string` |
+
+#### Returns
+
+`Promise`\<`string`\>
+
+**`Throws`**
+
+if called when `useDpop` is not enabled.
+
+#### Defined in
+
+[lib/fusion-auth.service.ts:175](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L175)
+
+---
+
+### getAccessToken
+
+▸ **getAccessToken**(): `null` \| `string`
+
+Returns the stored DPoP access token, or `null` if not logged in.
+
+#### Returns
+
+`null` \| `string`
+
+**`Throws`**
+
+if called when `useDpop` is not enabled.
+
+#### Defined in
+
+[lib/fusion-auth.service.ts:188](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L188)
+
+---
+
### getUserInfo
▸ **getUserInfo**\<`T`\>(): `Promise`\<`T`\>
@@ -128,7 +222,7 @@ Fetches userInfo from the 'me' endpoint.
#### Defined in
-[lib/fusion-auth.service.ts:102](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L102)
+[lib/fusion-auth.service.ts:123](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L123)
---
@@ -152,7 +246,7 @@ Returns an observable request that fetches userInfo, and catches error.
#### Defined in
-[lib/fusion-auth.service.ts:74](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L74)
+[lib/fusion-auth.service.ts:95](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L95)
---
@@ -169,7 +263,7 @@ This is handled automatically if the SDK is configured with `shouldAutoRefresh`.
#### Defined in
-[lib/fusion-auth.service.ts:63](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L63)
+[lib/fusion-auth.service.ts:84](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L84)
---
@@ -185,7 +279,7 @@ A function that returns whether the user is logged in. This returned value is no
#### Defined in
-[lib/fusion-auth.service.ts:47](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L47)
+[lib/fusion-auth.service.ts:66](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L66)
---
@@ -201,7 +295,7 @@ Initiates logout flow.
#### Defined in
-[lib/fusion-auth.service.ts:125](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L125)
+[lib/fusion-auth.service.ts:146](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L146)
---
@@ -218,7 +312,7 @@ Self service account management is only available in FusionAuth paid plans.
#### Defined in
-[lib/fusion-auth.service.ts:133](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L133)
+[lib/fusion-auth.service.ts:154](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L154)
---
@@ -235,7 +329,7 @@ Automatic token refreshing can be enabled if the SDK is configured with `shouldA
#### Defined in
-[lib/fusion-auth.service.ts:55](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L55)
+[lib/fusion-auth.service.ts:74](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L74)
---
@@ -257,7 +351,7 @@ Initiates login flow.
#### Defined in
-[lib/fusion-auth.service.ts:110](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L110)
+[lib/fusion-auth.service.ts:131](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L131)
---
@@ -279,4 +373,4 @@ Initiates register flow.
#### Defined in
-[lib/fusion-auth.service.ts:118](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L118)
+[lib/fusion-auth.service.ts:139](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/fusion-auth.service.ts#L139)
diff --git a/packages/sdk-angular/docs/interfaces/FusionAuthConfig.md b/packages/sdk-angular/docs/interfaces/FusionAuthConfig.md
index 15f59eb..efeea70 100644
--- a/packages/sdk-angular/docs/interfaces/FusionAuthConfig.md
+++ b/packages/sdk-angular/docs/interfaces/FusionAuthConfig.md
@@ -10,10 +10,12 @@ Config for FusionAuth Angular SDK
- [autoRefreshSecondsBeforeExpiry](FusionAuthConfig.md#autorefreshsecondsbeforeexpiry)
- [clientId](FusionAuthConfig.md#clientid)
+- [dpopTokenStorage](FusionAuthConfig.md#dpoptokenstorage)
- [loginPath](FusionAuthConfig.md#loginpath)
- [logoutPath](FusionAuthConfig.md#logoutpath)
- [mePath](FusionAuthConfig.md#mepath)
- [onAutoRefreshFailure](FusionAuthConfig.md#onautorefreshfailure)
+- [onLoginFailure](FusionAuthConfig.md#onloginfailure)
- [onRedirect](FusionAuthConfig.md#onredirect)
- [postLogoutRedirectUri](FusionAuthConfig.md#postlogoutredirecturi)
- [redirectUri](FusionAuthConfig.md#redirecturi)
@@ -22,6 +24,7 @@ Config for FusionAuth Angular SDK
- [serverUrl](FusionAuthConfig.md#serverurl)
- [shouldAutoRefresh](FusionAuthConfig.md#shouldautorefresh)
- [tokenRefreshPath](FusionAuthConfig.md#tokenrefreshpath)
+- [useDpop](FusionAuthConfig.md#usedpop)
## Properties
@@ -33,7 +36,7 @@ The number of seconds before the access token expiry when the auto refresh funct
#### Defined in
-[lib/types.ts:38](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L38)
+[lib/types.ts:38](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L38)
---
@@ -45,7 +48,20 @@ The client id of the application.
#### Defined in
-[lib/types.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L13)
+[lib/types.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L13)
+
+---
+
+### dpopTokenStorage
+
+• `Optional` **dpopTokenStorage**: `"localStorage"` \| `"memory"`
+
+Token storage location in DPoP mode. Only meaningful when `useDpop: true`.
+Defaults to `'localStorage'`.
+
+#### Defined in
+
+[lib/types.ts:92](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L92)
---
@@ -57,7 +73,7 @@ The path to the login endpoint.
#### Defined in
-[lib/types.ts:53](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L53)
+[lib/types.ts:59](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L59)
---
@@ -69,7 +85,7 @@ The path to the logout endpoint.
#### Defined in
-[lib/types.ts:63](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L63)
+[lib/types.ts:69](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L69)
---
@@ -81,7 +97,7 @@ The path to the me endpoint.
#### Defined in
-[lib/types.ts:73](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L73)
+[lib/types.ts:79](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L79)
---
@@ -107,7 +123,34 @@ Callback to be invoked if a request to refresh the access token fails during aut
#### Defined in
-[lib/types.ts:48](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L48)
+[lib/types.ts:48](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L48)
+
+---
+
+### onLoginFailure
+
+• `Optional` **onLoginFailure**: (`error`: `Error`) => `void`
+
+Callback invoked if a DPoP mode login/register/redirect exchange fails.
+Only relevant when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`error`): `void`
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `error` | `Error` |
+
+##### Returns
+
+`void`
+
+#### Defined in
+
+[lib/types.ts:54](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L54)
---
@@ -133,7 +176,7 @@ Callback function to be invoked with the `state` value upon redirect from login
#### Defined in
-[lib/types.ts:43](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L43)
+[lib/types.ts:43](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L43)
---
@@ -145,7 +188,7 @@ The redirect URI for post-logout. Defaults the provided `redirectUri`.
#### Defined in
-[lib/types.ts:23](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L23)
+[lib/types.ts:23](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L23)
---
@@ -157,7 +200,7 @@ The redirect URI of the application.
#### Defined in
-[lib/types.ts:18](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L18)
+[lib/types.ts:18](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L18)
---
@@ -169,7 +212,7 @@ The path to the register endpoint.
#### Defined in
-[lib/types.ts:58](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L58)
+[lib/types.ts:64](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L64)
---
@@ -181,7 +224,7 @@ The OAuth2 scope parameter passed to the `/oauth2/authorize` endpoint. If not sp
#### Defined in
-[lib/types.ts:28](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L28)
+[lib/types.ts:28](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L28)
---
@@ -193,7 +236,7 @@ The URL of the server that performs the token exchange.
#### Defined in
-[lib/types.ts:8](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L8)
+[lib/types.ts:8](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L8)
---
@@ -205,7 +248,7 @@ Enables automatic token refreshing. Defaults to false.
#### Defined in
-[lib/types.ts:33](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L33)
+[lib/types.ts:33](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L33)
---
@@ -217,4 +260,18 @@ The path to the token refresh endpoint.
#### Defined in
-[lib/types.ts:68](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L68)
+[lib/types.ts:74](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L74)
+
+---
+
+### useDpop
+
+• `Optional` **useDpop**: `boolean`
+
+Opt-in to DPoP mode. When `true`, the SDK calls FusionAuth endpoints
+directly and stores tokens in JavaScript-accessible storage instead of
+relying on the Hosted Backend's HttpOnly cookies. Defaults to `false`.
+
+#### Defined in
+
+[lib/types.ts:86](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L86)
diff --git a/packages/sdk-angular/docs/interfaces/UserInfo.md b/packages/sdk-angular/docs/interfaces/UserInfo.md
index 3eaac8f..5459d54 100644
--- a/packages/sdk-angular/docs/interfaces/UserInfo.md
+++ b/packages/sdk-angular/docs/interfaces/UserInfo.md
@@ -9,14 +9,14 @@
- [applicationId](UserInfo.md#applicationid)
- [birthdate](UserInfo.md#birthdate)
- [email](UserInfo.md#email)
-- [email_verified](UserInfo.md#email_verified)
-- [family_name](UserInfo.md#family_name)
-- [given_name](UserInfo.md#given_name)
-- [middle_name](UserInfo.md#middle_name)
+- [email\_verified](UserInfo.md#email_verified)
+- [family\_name](UserInfo.md#family_name)
+- [given\_name](UserInfo.md#given_name)
+- [middle\_name](UserInfo.md#middle_name)
- [name](UserInfo.md#name)
-- [phone_number](UserInfo.md#phone_number)
+- [phone\_number](UserInfo.md#phone_number)
- [picture](UserInfo.md#picture)
-- [preferred_username](UserInfo.md#preferred_username)
+- [preferred\_username](UserInfo.md#preferred_username)
- [roles](UserInfo.md#roles)
- [sid](UserInfo.md#sid)
- [sub](UserInfo.md#sub)
@@ -30,7 +30,7 @@
#### Defined in
-[lib/types.ts:77](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L77)
+[lib/types.ts:96](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L96)
---
@@ -40,7 +40,7 @@
#### Defined in
-[lib/types.ts:78](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L78)
+[lib/types.ts:97](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L97)
---
@@ -50,47 +50,47 @@
#### Defined in
-[lib/types.ts:79](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L79)
+[lib/types.ts:98](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L98)
---
-### email_verified
+### email\_verified
-• `Optional` **email_verified**: `boolean`
+• `Optional` **email\_verified**: `boolean`
#### Defined in
-[lib/types.ts:80](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L80)
+[lib/types.ts:99](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L99)
---
-### family_name
+### family\_name
-• `Optional` **family_name**: `string`
+• `Optional` **family\_name**: `string`
#### Defined in
-[lib/types.ts:81](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L81)
+[lib/types.ts:100](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L100)
---
-### given_name
+### given\_name
-• `Optional` **given_name**: `string`
+• `Optional` **given\_name**: `string`
#### Defined in
-[lib/types.ts:82](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L82)
+[lib/types.ts:101](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L101)
---
-### middle_name
+### middle\_name
-• `Optional` **middle_name**: `string`
+• `Optional` **middle\_name**: `string`
#### Defined in
-[lib/types.ts:83](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L83)
+[lib/types.ts:102](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L102)
---
@@ -100,17 +100,17 @@
#### Defined in
-[lib/types.ts:84](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L84)
+[lib/types.ts:103](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L103)
---
-### phone_number
+### phone\_number
-• `Optional` **phone_number**: `string`
+• `Optional` **phone\_number**: `string`
#### Defined in
-[lib/types.ts:85](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L85)
+[lib/types.ts:104](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L104)
---
@@ -120,17 +120,17 @@
#### Defined in
-[lib/types.ts:86](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L86)
+[lib/types.ts:105](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L105)
---
-### preferred_username
+### preferred\_username
-• `Optional` **preferred_username**: `string`
+• `Optional` **preferred\_username**: `string`
#### Defined in
-[lib/types.ts:87](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L87)
+[lib/types.ts:106](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L106)
---
@@ -140,7 +140,7 @@
#### Defined in
-[lib/types.ts:88](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L88)
+[lib/types.ts:107](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L107)
---
@@ -150,7 +150,7 @@
#### Defined in
-[lib/types.ts:89](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L89)
+[lib/types.ts:108](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L108)
---
@@ -160,7 +160,7 @@
#### Defined in
-[lib/types.ts:90](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L90)
+[lib/types.ts:109](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L109)
---
@@ -170,4 +170,4 @@
#### Defined in
-[lib/types.ts:91](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/80c01c9ccb450a2187bc0d2cc65fa8c9c38cfabe/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L91)
+[lib/types.ts:110](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-angular/projects/fusionauth-angular-sdk/src/lib/types.ts#L110)
diff --git a/packages/sdk-angular/package.json b/packages/sdk-angular/package.json
index 2224ee8..b3ebbbe 100644
--- a/packages/sdk-angular/package.json
+++ b/packages/sdk-angular/package.json
@@ -7,7 +7,7 @@
"build": "yarn get-sdk-core && ng build && cp README.md dist/fusionauth-angular-sdk/README.md",
"test": "yarn get-sdk-core && ng test --watch=false",
"test:watch": "yarn get-sdk-core && ng test",
- "docs": "typedoc --plugin typedoc-plugin-markdown"
+ "docs": "typedoc --plugin typedoc-plugin-markdown --tsconfig tsconfig.doc.json"
},
"private": false,
"dependencies": {
diff --git a/packages/sdk-angular/projects/fusionauth-angular-sdk/README.md b/packages/sdk-angular/projects/fusionauth-angular-sdk/README.md
deleted file mode 100644
index e7cd5a3..0000000
--- a/packages/sdk-angular/projects/fusionauth-angular-sdk/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# FusionauthAngularSdk
-
-This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.
-
-## Build
-
-Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
-
-## Running unit tests
-
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
-
-## Further help
-
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
\ No newline at end of file
diff --git a/packages/sdk-angular/tsconfig.doc.json b/packages/sdk-angular/tsconfig.doc.json
new file mode 100644
index 0000000..b36e096
--- /dev/null
+++ b/packages/sdk-angular/tsconfig.doc.json
@@ -0,0 +1,12 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "ignoreDeprecations": "5.0"
+ },
+ "exclude": ["**/*.spec.ts"],
+ "typedocOptions": {
+ "plugin": ["typedoc-plugin-markdown"],
+ "entryPoints": ["projects/fusionauth-angular-sdk/src/public-api.ts"],
+ "out": "docs"
+ }
+}
diff --git a/packages/sdk-angular/tsconfig.json b/packages/sdk-angular/tsconfig.json
index 6887e8e..87d5a16 100644
--- a/packages/sdk-angular/tsconfig.json
+++ b/packages/sdk-angular/tsconfig.json
@@ -27,7 +27,7 @@
"composite": false,
"allowImportingTsExtensions": false,
"noEmit": false,
- "types": ["jasmine"]
+ "types": ["node"]
},
"include": ["./**/*.ts"],
"angularCompilerOptions": {
@@ -35,10 +35,5 @@
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
- },
- "typedocOptions": {
- "plugin": ["typedoc-plugin-markdown"],
- "entryPoints": ["projects/fusionauth-angular-sdk/src/public-api.ts"],
- "out": "docs"
}
}
diff --git a/packages/sdk-react/docs/README.md b/packages/sdk-react/docs/README.md
index 0d68dd0..97bd5f2 100644
--- a/packages/sdk-react/docs/README.md
+++ b/packages/sdk-react/docs/README.md
@@ -11,10 +11,11 @@ An SDK for using FusionAuth in React applications.
- [Configuration](#configuration)
- [Configuration with NextJS](#configuration-with-nextjs)
- [Usage](#usage)
- - [useFusionAuth](#usefusionauth)
- - [State Parameter](#state-parameter)
- - [Protecting content](#protecting-content)
- - [UI Components](#ui-components)
+ - [useFusionAuth](#usefusionauth)
+ - [State Parameter](#state-parameter)
+ - [Protecting content](#protecting-content)
+ - [UI Components](#ui-components)
+ - [DPoP Mode](#dpop-mode)
- [Known issues](#known-issues)
- [Documentation](#documentation)
- [Formatting](#formatting)
@@ -41,18 +42,19 @@ then log in. After that, they are sent back to your React application.
Once authentication succeeds, the following secure, HTTP-only cookies
will be set:
-- `app.at` - an OAuth [Access
- Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#access-token)
+- `app.at` - an OAuth [Access
+ Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#access-token)
-- `app.rt` - a [Refresh
- Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#refresh-token)
- used to obtain a new `app.at`. This cookie will only be set if
- refresh tokens are enabled on your FusionAuth instance.
+- `app.rt` - a [Refresh
+ Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#refresh-token)
+ used to obtain a new `app.at`. This cookie will only be set if
+ refresh tokens are enabled on your FusionAuth instance.
The access token can be presented to APIs to authorize the request and
the refresh token can be used to get a new access token.
There are 2 ways to interact with this SDK:
+
1. By hosting your own server that performs the OAuth token exchange and meets the [server code requirements for FusionAuth Web SDKs](https://github.com/FusionAuth/fusionauth-javascript-sdk-express#server-code-requirements).
2. By using the server hosted on your FusionAuth instance, i.e., not writing your own server code.
@@ -98,6 +100,7 @@ const config: FusionAuthProviderConfig = {
shouldAutoFetchUserInfo: true, // Automatically fetch userInfo when logged in. Defaults to false.
shouldAutoRefresh: true, // Enables automatic token refresh. Defaults to false.
onRedirect: (state?: string) => { }, // Optional callback invoked upon redirect back from login or register.
+ // useDpop: true, // Opt-in to DPoP mode. See "DPoP Mode" below. Defaults to false.
};
ReactDOM.createRoot(document.getElementById("my-app")).render(
@@ -112,7 +115,7 @@ ReactDOM.createRoot(document.getElementById("my-app")).render(
To configure the SDK with Next, install [`next-client-cookies`](https://github.com/moshest/next-client-cookies?tab=readme-ov-file#install) and pass `useCookies` into the config object as `nextCookieAdapter`.
```jsx
-'use client'
+'use client';
import { useCookies } from 'next-client-cookies';
@@ -144,11 +147,11 @@ function MyComponent() {
isFetchingUserInfo,
startLogin,
startRegister,
- userInfo
- } = useFusionAuth()
+ userInfo,
+ } = useFusionAuth();
if (isFetchingUserInfo) {
- return
Loading...
+ return
Loading...
;
}
if (!isLoggedIn) {
@@ -162,7 +165,7 @@ function MyComponent() {
}
if (userInfo?.given_name) {
- return
@@ -198,7 +202,8 @@ const UserNameDisplay = () => {
const AdminPanel = () => (
- // Only displays if user is authenticated and has 'admin' role
+ // Only displays if user is authenticated and
+ has 'admin' role
);
```
@@ -211,7 +216,7 @@ This SDK offers 3 pre-built UI components.
import {
FusionAuthLoginButton,
FusionAuthLogoutButton,
- FusionAuthRegisterButton
+ FusionAuthRegisterButton,
} from '@fusionauth/react-sdk';
export const LoginPage = () => (
@@ -230,6 +235,42 @@ export const AccountPage = () => (
);
```
+### DPoP Mode
+
+By default, the SDK calls a Hosted Backend that stores tokens in HttpOnly cookies (`useDpop: false`, the default). In DPoP mode, the SDK instead calls FusionAuth endpoints directly and binds tokens to a private key generated in the browser, per [RFC 9449](https://datatracker.ietf.org/doc/html/rfc9449). Enable it by setting `useDpop: true` on `FusionAuthProviderConfig`:
+
+```jsx
+const config: FusionAuthProviderConfig = {
+ clientId: "",
+ redirectUri: "",
+ serverUrl: "",
+ useDpop: true, // Opt-in to DPoP mode.
+ dpopTokenStorage: 'localStorage', // 'localStorage' (default, persists across reloads) or 'memory'.
+};
+```
+
+When `useDpop: true`, `useFusionAuth()` additionally returns `dpopFetch`, `generateProof`, and `getAccessToken`. These are `undefined` when `useDpop` is `false` or not set.
+
+```jsx
+const { dpopFetch, generateProof, getAccessToken } = useFusionAuth();
+
+// Recommended — handles attaching DPoP headers (and nonce retries) automatically.
+const response = await dpopFetch('https://api.example.com/data', {
+ method: 'GET',
+});
+
+// Advanced — for axios or other HTTP libraries that can't use dpopFetch.
+const accessToken = getAccessToken();
+const proof = await generateProof(
+ 'https://api.example.com/data',
+ 'GET',
+ accessToken,
+);
+// axios.get('https://api.example.com/data', {
+// headers: { Authorization: `DPoP ${accessToken}`, DPoP: proof }
+// });
+```
+
### Known Issues
None.
@@ -248,8 +289,8 @@ end::forDocSite[]
There are several linting packages run when you push to a branch. One is `prettier`. If this fails, you can fix the files from the command line:
-* npm run install
-* npm run prettier -- -w /path/to/file
+- npm run install
+- npm run prettier -- -w /path/to/file
Doing this will overwrite your file, but fix prettier's objections.
diff --git a/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md b/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md
index 9cbbf2e..8ef1c89 100644
--- a/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md
+++ b/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md
@@ -14,11 +14,13 @@ Config for FusionAuthProvider
- [authParams](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#authparams)
- [autoRefreshSecondsBeforeExpiry](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#autorefreshsecondsbeforeexpiry)
- [clientId](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#clientid)
+- [dpopTokenStorage](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#dpoptokenstorage)
- [loginPath](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#loginpath)
- [logoutPath](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#logoutpath)
- [mePath](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#mepath)
- [nextCookieAdapter](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#nextcookieadapter)
- [onAutoRefreshFailure](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#onautorefreshfailure)
+- [onLoginFailure](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#onloginfailure)
- [onRedirect](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#onredirect)
- [postLogoutRedirectUri](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#postlogoutredirecturi)
- [redirectUri](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#redirecturi)
@@ -28,6 +30,7 @@ Config for FusionAuthProvider
- [shouldAutoFetchUserInfo](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#shouldautofetchuserinfo)
- [shouldAutoRefresh](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#shouldautorefresh)
- [tokenRefreshPath](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#tokenrefreshpath)
+- [useDpop](providers_FusionAuthProviderConfig.FusionAuthProviderConfig.md#usedpop)
## Properties
@@ -40,7 +43,7 @@ Only set this if you are hosting server that uses a custom name for the 'app.at_
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:98](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L98)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:104](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L104)
---
@@ -52,7 +55,7 @@ Additional params passed to loginPath typically `/app/login/`, which redirects t
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:30](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L30)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:30](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L30)
---
@@ -64,7 +67,7 @@ The number of seconds before the access token expiry when the auto refresh funct
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:50](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L50)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:50](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L50)
---
@@ -76,7 +79,20 @@ The client id of the application.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L15)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L15)
+
+---
+
+### dpopTokenStorage
+
+• `Optional` **dpopTokenStorage**: `"localStorage"` \| `"memory"`
+
+Token storage location in DPoP mode. Only meaningful when `useDpop: true`.
+Defaults to `'localStorage'`.
+
+#### Defined in
+
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:117](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L117)
---
@@ -88,7 +104,7 @@ The path to the login endpoint.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:65](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L65)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:71](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L71)
---
@@ -100,7 +116,7 @@ The path to the logout endpoint.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:75](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L75)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:81](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L81)
---
@@ -112,7 +128,7 @@ The path to the me endpoint.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:92](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L92)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:98](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L98)
---
@@ -134,7 +150,7 @@ See docs for [configuration with nextjs](https://github.com/FusionAuth/fusionaut
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:87](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L87)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:93](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L93)
---
@@ -160,7 +176,34 @@ Callback to be invoked if a request to refresh the access token fails during aut
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:60](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L60)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:60](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L60)
+
+---
+
+### onLoginFailure
+
+• `Optional` **onLoginFailure**: (`error`: `Error`) => `void`
+
+Callback invoked if a DPoP mode login/register/redirect exchange fails.
+Only relevant when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`error`): `void`
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `error` | `Error` |
+
+##### Returns
+
+`void`
+
+#### Defined in
+
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:66](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L66)
---
@@ -186,7 +229,7 @@ Callback function to be invoked with the `state` value upon redirect from login
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:55](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L55)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:55](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L55)
---
@@ -198,7 +241,7 @@ The redirect URI for post-logout. Defaults the provided `redirectUri`.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:35](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L35)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:35](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L35)
---
@@ -210,7 +253,7 @@ The redirect URI of the application.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:20](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L20)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:20](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L20)
---
@@ -222,7 +265,7 @@ The path to the register endpoint.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:70](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L70)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:76](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L76)
---
@@ -234,7 +277,7 @@ The OAuth2 scope parameter passed to the `/oauth2/authorize` endpoint. If not sp
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:25](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L25)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:25](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L25)
---
@@ -246,7 +289,7 @@ The URL of the server that performs the token exchange.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L10)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L10)
---
@@ -258,7 +301,7 @@ Enables the SDK to automatically handle fetching user info when logged in. Defau
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:45](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L45)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:45](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L45)
---
@@ -270,7 +313,7 @@ Enables automatic token refreshing. Defaults to false.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:40](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L40)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:40](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L40)
---
@@ -282,4 +325,18 @@ The path to the token refresh endpoint.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:80](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L80)
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:86](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L86)
+
+---
+
+### useDpop
+
+• `Optional` **useDpop**: `boolean`
+
+Opt-in to DPoP mode. When `true`, the SDK calls FusionAuth endpoints
+directly and stores tokens in JavaScript-accessible storage instead of
+relying on the Hosted Backend's HttpOnly cookies. Defaults to `false`.
+
+#### Defined in
+
+[packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts:111](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderConfig.ts#L111)
diff --git a/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderContext.FusionAuthProviderContext.md b/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderContext.FusionAuthProviderContext.md
index 8ed7bb9..39f9149 100644
--- a/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderContext.FusionAuthProviderContext.md
+++ b/packages/sdk-react/docs/interfaces/providers_FusionAuthProviderContext.FusionAuthProviderContext.md
@@ -16,8 +16,11 @@ The context provided by FusionAuth React SDK
### Properties
+- [dpopFetch](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#dpopfetch)
- [error](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#error)
- [fetchUserInfo](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#fetchuserinfo)
+- [generateProof](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#generateproof)
+- [getAccessToken](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#getaccesstoken)
- [initAutoRefresh](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#initautorefresh)
- [isFetchingUserInfo](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#isfetchinguserinfo)
- [isLoggedIn](providers_FusionAuthProviderContext.FusionAuthProviderContext.md#isloggedin)
@@ -30,6 +33,34 @@ The context provided by FusionAuth React SDK
## Properties
+### dpopFetch
+
+• `Optional` **dpopFetch**: (`input`: `RequestInfo` \| `URL`, `init?`: `RequestInit`) => `Promise`\<`Response`\>
+
+Fetch wrapper that automatically attaches DPoP proof headers.
+Present only when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`input`, `init?`): `Promise`\<`Response`\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :--------------------- |
+| `input` | `RequestInfo` \| `URL` |
+| `init?` | `RequestInit` |
+
+##### Returns
+
+`Promise`\<`Response`\>
+
+#### Defined in
+
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:70](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L70)
+
+---
+
### error
• **error**: `null` \| `Error`
@@ -38,7 +69,7 @@ Error occurred while fetching userInfo.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:29](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L29)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:29](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L29)
---
@@ -59,7 +90,59 @@ This is handled automatically if the SDK is configured with `shouldAutoFetchUser
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:19](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L19)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:19](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L19)
+
+---
+
+### generateProof
+
+• `Optional` **generateProof**: (`htu`: `string`, `htm`: `string`, `accessToken?`: `string`, `nonce?`: `string`) => `Promise`\<`string`\>
+
+Returns a signed DPoP proof JWT for use with axios or other
+HTTP libraries. Present only when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`htu`, `htm`, `accessToken?`, `nonce?`): `Promise`\<`string`\>
+
+##### Parameters
+
+| Name | Type |
+| :------------- | :------- |
+| `htu` | `string` |
+| `htm` | `string` |
+| `accessToken?` | `string` |
+| `nonce?` | `string` |
+
+##### Returns
+
+`Promise`\<`string`\>
+
+#### Defined in
+
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:79](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L79)
+
+---
+
+### getAccessToken
+
+• `Optional` **getAccessToken**: () => `null` \| `string`
+
+Returns the stored DPoP access token, or `null` if not logged in.
+Throws a descriptive error when `useDpop: false`.
+Present only when `useDpop: true`.
+
+#### Type declaration
+
+▸ (): `null` \| `string`
+
+##### Returns
+
+`null` \| `string`
+
+#### Defined in
+
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:91](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L91)
---
@@ -80,7 +163,7 @@ This is handled automatically if the SDK is configured with `shouldAutoRefresh`.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:64](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L64)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:64](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L64)
---
@@ -92,7 +175,7 @@ Indicates that the fetchUserInfo call is unresolved.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:24](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L24)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:24](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L24)
---
@@ -104,7 +187,7 @@ Whether the user is logged in.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:8](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L8)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:8](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L8)
---
@@ -125,7 +208,7 @@ Self service account management is only available in FusionAuth paid plans.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:52](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L52)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:52](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L52)
---
@@ -146,7 +229,7 @@ This is handled automatically if the SDK is configured with `shouldAutoRefresh`.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:58](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L58)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:58](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L58)
---
@@ -172,7 +255,7 @@ Initiates login flow.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:35](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L35)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:35](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L35)
---
@@ -192,7 +275,7 @@ Initiates logout flow.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:46](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L46)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:46](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L46)
---
@@ -218,7 +301,7 @@ Initiates register flow.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:41](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L41)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:41](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L41)
---
@@ -230,4 +313,4 @@ Data fetched from the configured 'me' endpoint.
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L13)
+[packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProviderContext.ts#L13)
diff --git a/packages/sdk-react/docs/modules/providers_FusionAuthProvider.md b/packages/sdk-react/docs/modules/providers_FusionAuthProvider.md
index f84520b..d3249e9 100644
--- a/packages/sdk-react/docs/modules/providers_FusionAuthProvider.md
+++ b/packages/sdk-react/docs/modules/providers_FusionAuthProvider.md
@@ -33,7 +33,7 @@
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProvider.tsx:21](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProvider.tsx#L21)
+[packages/sdk-react/src/components/providers/FusionAuthProvider.tsx:23](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProvider.tsx#L23)
---
@@ -55,4 +55,4 @@ A hook that returns `FusionAuthProviderContext`
#### Defined in
-[packages/sdk-react/src/components/providers/FusionAuthProvider.tsx:122](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/providers/FusionAuthProvider.tsx#L122)
+[packages/sdk-react/src/components/providers/FusionAuthProvider.tsx:158](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/providers/FusionAuthProvider.tsx#L158)
diff --git a/packages/sdk-react/docs/modules/ui_FusionAuthLoginButton.md b/packages/sdk-react/docs/modules/ui_FusionAuthLoginButton.md
index 4ba81bf..c1164d6 100644
--- a/packages/sdk-react/docs/modules/ui_FusionAuthLoginButton.md
+++ b/packages/sdk-react/docs/modules/ui_FusionAuthLoginButton.md
@@ -28,4 +28,4 @@ Calls the `startLogin` method from `FusionAuthProviderContext`.
#### Defined in
-[packages/sdk-react/src/components/ui/FusionAuthLoginButton/index.tsx:16](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/ui/FusionAuthLoginButton/index.tsx#L16)
+[packages/sdk-react/src/components/ui/FusionAuthLoginButton/index.tsx:16](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/ui/FusionAuthLoginButton/index.tsx#L16)
diff --git a/packages/sdk-react/docs/modules/ui_FusionAuthLogoutButton.md b/packages/sdk-react/docs/modules/ui_FusionAuthLogoutButton.md
index 67e103c..aeebe81 100644
--- a/packages/sdk-react/docs/modules/ui_FusionAuthLogoutButton.md
+++ b/packages/sdk-react/docs/modules/ui_FusionAuthLogoutButton.md
@@ -28,4 +28,4 @@ Calls the `startLogout` method from `FusionAuthProviderContext`.
#### Defined in
-[packages/sdk-react/src/components/ui/FusionAuthLogoutButton/index.tsx:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/ui/FusionAuthLogoutButton/index.tsx#L13)
+[packages/sdk-react/src/components/ui/FusionAuthLogoutButton/index.tsx:13](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/ui/FusionAuthLogoutButton/index.tsx#L13)
diff --git a/packages/sdk-react/docs/modules/ui_FusionAuthRegisterButton.md b/packages/sdk-react/docs/modules/ui_FusionAuthRegisterButton.md
index 30a2074..d1a7724 100644
--- a/packages/sdk-react/docs/modules/ui_FusionAuthRegisterButton.md
+++ b/packages/sdk-react/docs/modules/ui_FusionAuthRegisterButton.md
@@ -28,4 +28,4 @@ Calls the `startRegister` method from `FusionAuthProviderContext`.
#### Defined in
-[packages/sdk-react/src/components/ui/FusionAuthRegisterButton/index.tsx:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/ui/FusionAuthRegisterButton/index.tsx#L15)
+[packages/sdk-react/src/components/ui/FusionAuthRegisterButton/index.tsx:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/ui/FusionAuthRegisterButton/index.tsx#L15)
diff --git a/packages/sdk-react/docs/modules/ui_RequireAuth.md b/packages/sdk-react/docs/modules/ui_RequireAuth.md
index 50286a5..e61b8b9 100644
--- a/packages/sdk-react/docs/modules/ui_RequireAuth.md
+++ b/packages/sdk-react/docs/modules/ui_RequireAuth.md
@@ -28,4 +28,4 @@ Only renders children when user is authenticated.
#### Defined in
-[packages/sdk-react/src/components/ui/RequireAuth/index.tsx:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/ui/RequireAuth/index.tsx#L10)
+[packages/sdk-react/src/components/ui/RequireAuth/index.tsx:10](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/ui/RequireAuth/index.tsx#L10)
diff --git a/packages/sdk-react/docs/modules/ui_Unauthenticated.md b/packages/sdk-react/docs/modules/ui_Unauthenticated.md
index 577dbf5..b201384 100644
--- a/packages/sdk-react/docs/modules/ui_Unauthenticated.md
+++ b/packages/sdk-react/docs/modules/ui_Unauthenticated.md
@@ -29,4 +29,4 @@ Only renders children when user is unauthenticated.
#### Defined in
-[packages/sdk-react/src/components/ui/Unauthenticated/index.tsx:5](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/63efa2d5360c2b7e1392ffa730dac8f5a0bc8e19/packages/sdk-react/src/components/ui/Unauthenticated/index.tsx#L5)
+[packages/sdk-react/src/components/ui/Unauthenticated/index.tsx:5](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-react/src/components/ui/Unauthenticated/index.tsx#L5)
diff --git a/packages/sdk-vue/docs/README.md b/packages/sdk-vue/docs/README.md
index b9f215c..7caf6b0 100644
--- a/packages/sdk-vue/docs/README.md
+++ b/packages/sdk-vue/docs/README.md
@@ -6,16 +6,17 @@ An SDK for using FusionAuth in Vue applications.
- [Overview](#overview)
- [Getting Started](#getting-started)
-- [Installation](#installation)
+ - [Quickstart](#quickstart)
+ - [Installation](#installation)
- [Usage](#usage)
- [Configuring the SDK](#configuring-the-sdk)
- [Configuring with Nuxt](#configuring-with-nuxt)
- [useFusionAuth Composable](#usefusionauth-composable)
- [State parameter](#state-parameter)
+ - [DPoP Mode](#dpop-mode)
- [UI Components](#ui-components)
- [Protecting Content](#protecting-content)
- [Pre-built buttons](#pre-built-buttons)
-- [Quickstart](#quickstart)
- [Documentation](#documentation)
- [Known Issues](#known-issues)
- [Releases](#releases)
@@ -41,18 +42,19 @@ then log in. After that, they are sent back to your Vue application.
Once authentication succeeds, the following secure, HTTP-only cookies
will be set:
-- `app.at` - an OAuth [Access
- Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#access-token)
+- `app.at` - an OAuth [Access
+ Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#access-token)
-- `app.rt` - a [Refresh
- Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#refresh-token)
- used to obtain a new `app.at`. This cookie will only be set if
- refresh tokens are enabled on your FusionAuth instance.
+- `app.rt` - a [Refresh
+ Token](https://fusionauth.io/docs/v1/tech/oauth/tokens#refresh-token)
+ used to obtain a new `app.at`. This cookie will only be set if
+ refresh tokens are enabled on your FusionAuth instance.
The access token can be presented to APIs to authorize the request and
the refresh token can be used to get a new access token.
There are 2 ways to interact with this SDK:
+
1. By hosting your own server that performs the OAuth token exchange and meets the [server code requirements for FusionAuth Web SDKs](https://github.com/FusionAuth/fusionauth-javascript-sdk-express#server-code-requirements).
2. By using the server hosted on your FusionAuth instance, i.e., not writing your own server code.
@@ -63,6 +65,12 @@ compliant identity server.
## Getting Started
+If you are new to Vue development, you may want to start with the Quickstart guide. If you are already familiar with Vue development, skip to the Installation section.
+
+### Quickstart
+
+See the [FusionAuth Vue Quickstart](https://fusionauth.io/docs/quickstarts/quickstart-javascript-vue-web) for a full tutorial on using FusionAuth and Vue.
+
### Installation
NPM:
@@ -85,21 +93,24 @@ Configure and initialize the `FusionAuthVuePlugin` when you create your Vue app:
```typescript
import { createApp } from 'vue';
-import FusionAuthVuePlugin, { type FusionAuthConfig } from '@fusionauth/vue-sdk';
+import FusionAuthVuePlugin, {
+ type FusionAuthConfig,
+} from '@fusionauth/vue-sdk';
const config: FusionAuthConfig = {
- clientId: "", // Your app's FusionAuth client id
- serverUrl: "", // The url of the server that performs the token exchange
- redirectUri: "", // The URI that the user is directed to after the login/register/logout action
+ clientId: '', // Your app's FusionAuth client id
+ serverUrl: '', // The url of the server that performs the token exchange
+ redirectUri: '', // The URI that the user is directed to after the login/register/logout action
shouldAutoFetchUserInfo: true, // Automatically fetch userInfo when logged in. Defaults to false.
shouldAutoRefresh: true, // Enables automatic token refresh. Defaults to false.
- onRedirect: (state?: string) => { }, // Optional callback invoked upon redirect back from login or register.
-}
+ onRedirect: (state?: string) => {}, // Optional callback invoked upon redirect back from login or register.
+ // useDpop: true, // Opt-in to DPoP mode. See "DPoP Mode" below. Defaults to false.
+};
const app = createApp(App);
app.use(FusionAuthVuePlugin, config);
-app.mount('#app')
+app.mount('#app');
```
If you want to use the pre-styled buttons, don't forget to import the css file:
@@ -130,13 +141,13 @@ Using `createFusionAuth`, the SDK can be configured more flexibly.
```typescript
export default defineNuxtPlugin({
setup(nuxtApp) {
- const fusionauth = createFusionAuth(config);
- nuxtApp.vueApp.use(FusionAuthVuePlugin, { instance: fusionauth })
+ const fusionauth = createFusionAuth(config);
+ nuxtApp.vueApp.use(FusionAuthVuePlugin, { instance: fusionauth });
return {
- provide: { fusionauth }
+ provide: { fusionauth },
};
},
-})
+});
```
### `useFusionAuth` composable
@@ -146,33 +157,23 @@ View the [full API documentation](https://github.com/FusionAuth/fusionauth-javas
```html
{{ welcomeMessage }}
-
- Loading...
-
+
Loading...
@@ -188,6 +189,54 @@ const welcomeMessage = computed(() => {
The `login` and `register` functions accept an optional string parameter: `state`, which will be passed back to the optional `onRedirect` callback specified on your `FusionAuthConfig`. Though you may pass any value you would like for the state parameter, it is often used to indicate which page the user was on before redirecting to login or registration, so that the user can be returned to that location after a successful authentication.
+#### DPoP Mode
+
+By default, the SDK calls a Hosted Backend that stores tokens in HttpOnly cookies (`useDpop: false`, the default). In DPoP mode, the SDK instead calls FusionAuth endpoints directly and binds tokens to a private key generated in the browser. Enable it by setting `useDpop: true` on `FusionAuthConfig`:
+
+```typescript
+const config: FusionAuthConfig = {
+ clientId: '',
+ redirectUri: '',
+ serverUrl: '',
+ useDpop: true, // Opt-in to DPoP mode.
+ dpopTokenStorage: 'localStorage', // 'localStorage' (default, persists across reloads) or 'memory'.
+};
+```
+
+When `useDpop: true`, `useFusionAuth()` additionally returns `dpopFetch`, `generateProof`, and `getAccessToken`. These are `undefined` when `useDpop` is `false` or not set.
+
+```html
+
+```
+
+In DPoP mode, the login/register redirect round trip finishes asynchronously (there's no Hosted Backend to set cookies before the app reloads). `onRedirect` fires only after `isLoggedIn` and tokens are fully updated, so it's a reliable place to hook in post-login navigation:
+
+```typescript
+const config: FusionAuthConfig = {
+ // ...
+ useDpop: true,
+ onRedirect: () => router.push('/account'),
+};
+```
+
### UI Components
#### Protecting Content
@@ -232,10 +281,6 @@ is.
With the CSS variables, you can customize the buttons to match your app’s style.
-## Quickstart
-
-See the [FusionAuth Vue Quickstart](https://fusionauth.io/docs/quickstarts/quickstart-javascript-vue-web) for a full tutorial on using FusionAuth and Vue.
-
## Documentation
[Full library documentation](https://github.com/FusionAuth/fusionauth-javascript-sdk/tree/main/packages/sdk-vue/docs)
@@ -256,23 +301,23 @@ You may prefer to invoke `initAutoRefresh` from the [`app:beforeMount` hook](htt
```typescript
defineNuxtPlugin({
- setup: (nuxtApp) => {
+ setup: nuxtApp => {
const fusionauth = createFusionAuth({
...config,
shouldAutoRefresh: false, // is false by default
- });
- nuxtApp.vueApp.use(FusionAuthVuePlugin, { instance: fusionauth })
+ });
+ nuxtApp.vueApp.use(FusionAuthVuePlugin, { instance: fusionauth });
return {
- provide: { fusionauth }
+ provide: { fusionauth },
};
},
hooks: {
- "app:beforeMount"() {
+ 'app:beforeMount'() {
const { $fusionauth } = useNuxtApp();
$fusionauth.initAutoRefresh();
},
- }
-})
+ },
+});
```
## Releases
diff --git a/packages/sdk-vue/docs/interfaces/FusionAuth.md b/packages/sdk-vue/docs/interfaces/FusionAuth.md
index 488d031..790dcf0 100644
--- a/packages/sdk-vue/docs/interfaces/FusionAuth.md
+++ b/packages/sdk-vue/docs/interfaces/FusionAuth.md
@@ -14,7 +14,10 @@ FusionAuth object provided at app-level by FusionAuthVuePlugin
### Properties
+- [dpopFetch](FusionAuth.md#dpopfetch)
- [error](FusionAuth.md#error)
+- [generateProof](FusionAuth.md#generateproof)
+- [getAccessToken](FusionAuth.md#getaccesstoken)
- [getUserInfo](FusionAuth.md#getuserinfo)
- [initAutoRefresh](FusionAuth.md#initautorefresh)
- [isGettingUserInfo](FusionAuth.md#isgettinguserinfo)
@@ -28,15 +31,95 @@ FusionAuth object provided at app-level by FusionAuthVuePlugin
## Properties
+### dpopFetch
+
+• `Optional` **dpopFetch**: (`input`: `RequestInfo` \| `URL`, `init?`: `RequestInit`) => `Promise`\<`Response`\>
+
+Fetch wrapper that automatically attaches DPoP proof headers.
+Present only when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`input`, `init?`): `Promise`\<`Response`\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :--------------------- |
+| `input` | `RequestInfo` \| `URL` |
+| `init?` | `RequestInit` |
+
+##### Returns
+
+`Promise`\<`Response`\>
+
+#### Defined in
+
+[packages/sdk-vue/src/types.ts:194](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L194)
+
+---
+
### error
-• **error**: `Ref`\<`null` \| `Error`\>
+• **error**: `Ref`\<`null` \| `Error`, `null` \| `Error`\>
Error occurred within getUserInfo.
#### Defined in
-[src/types.ts:134](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L134)
+[packages/sdk-vue/src/types.ts:153](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L153)
+
+---
+
+### generateProof
+
+• `Optional` **generateProof**: (`htu`: `string`, `htm`: `string`, `accessToken?`: `string`, `nonce?`: `string`) => `Promise`\<`string`\>
+
+Returns a signed DPoP proof JWT for use with axios or other
+HTTP libraries. Present only when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`htu`, `htm`, `accessToken?`, `nonce?`): `Promise`\<`string`\>
+
+##### Parameters
+
+| Name | Type |
+| :------------- | :------- |
+| `htu` | `string` |
+| `htm` | `string` |
+| `accessToken?` | `string` |
+| `nonce?` | `string` |
+
+##### Returns
+
+`Promise`\<`string`\>
+
+#### Defined in
+
+[packages/sdk-vue/src/types.ts:203](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L203)
+
+---
+
+### getAccessToken
+
+• `Optional` **getAccessToken**: () => `null` \| `string`
+
+Returns the stored DPoP access token, or `null` if not logged in.
+Throws a descriptive error when `useDpop: false`.
+Present only when `useDpop: true`.
+
+#### Type declaration
+
+▸ (): `null` \| `string`
+
+##### Returns
+
+`null` \| `string`
+
+#### Defined in
+
+[packages/sdk-vue/src/types.ts:215](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L215)
---
@@ -57,7 +140,7 @@ Internally updates `isFetchingUser` and `userInfo` refs, as well as `error` if t
#### Defined in
-[src/types.ts:119](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L119)
+[packages/sdk-vue/src/types.ts:138](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L138)
---
@@ -78,31 +161,31 @@ Refresh is scheduled to happen at the configured `autoRefreshSecondsBeforeExpiry
#### Defined in
-[src/types.ts:169](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L169)
+[packages/sdk-vue/src/types.ts:188](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L188)
---
### isGettingUserInfo
-• **isGettingUserInfo**: `Ref`\<`boolean`\>
+• **isGettingUserInfo**: `Ref`\<`boolean`, `boolean`\>
Indicates that the getUserInfo call is unresolved.
#### Defined in
-[src/types.ts:129](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L129)
+[packages/sdk-vue/src/types.ts:148](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L148)
---
### isLoggedIn
-• **isLoggedIn**: `Ref`\<`boolean`\>
+• **isLoggedIn**: `Ref`\<`boolean`, `boolean`\>
Whether the user is logged in.
#### Defined in
-[src/types.ts:112](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L112)
+[packages/sdk-vue/src/types.ts:131](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L131)
---
@@ -128,7 +211,7 @@ Initiates login flow.
#### Defined in
-[src/types.ts:140](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L140)
+[packages/sdk-vue/src/types.ts:159](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L159)
---
@@ -148,7 +231,7 @@ Initiates a logout.
#### Defined in
-[src/types.ts:151](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L151)
+[packages/sdk-vue/src/types.ts:170](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L170)
---
@@ -169,7 +252,7 @@ Self service account management is only available in FusionAuth paid plans.
#### Defined in
-[src/types.ts:157](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L157)
+[packages/sdk-vue/src/types.ts:176](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L176)
---
@@ -190,7 +273,7 @@ Token refreshing is handled automatically if configured with `shouldAutoRefresh`
#### Defined in
-[src/types.ts:163](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L163)
+[packages/sdk-vue/src/types.ts:182](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L182)
---
@@ -216,16 +299,16 @@ Initiates register flow.
#### Defined in
-[src/types.ts:146](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L146)
+[packages/sdk-vue/src/types.ts:165](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L165)
---
### userInfo
-• **userInfo**: `Ref`\<`null` \| `T`\>
+• **userInfo**: `Ref`\<`null` \| `T`, `null` \| `T`\>
Data fetched from the configured 'me' endpoint.
#### Defined in
-[src/types.ts:124](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L124)
+[packages/sdk-vue/src/types.ts:143](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L143)
diff --git a/packages/sdk-vue/docs/interfaces/FusionAuthConfig.md b/packages/sdk-vue/docs/interfaces/FusionAuthConfig.md
index f712b9d..1065b95 100644
--- a/packages/sdk-vue/docs/interfaces/FusionAuthConfig.md
+++ b/packages/sdk-vue/docs/interfaces/FusionAuthConfig.md
@@ -10,11 +10,13 @@ Config for the FusionAuth Vue SDK
- [autoRefreshSecondsBeforeExpiry](FusionAuthConfig.md#autorefreshsecondsbeforeexpiry)
- [clientId](FusionAuthConfig.md#clientid)
+- [dpopTokenStorage](FusionAuthConfig.md#dpoptokenstorage)
- [loginPath](FusionAuthConfig.md#loginpath)
- [logoutPath](FusionAuthConfig.md#logoutpath)
- [mePath](FusionAuthConfig.md#mepath)
- [nuxtUseCookie](FusionAuthConfig.md#nuxtusecookie)
- [onAutoRefreshFailure](FusionAuthConfig.md#onautorefreshfailure)
+- [onLoginFailure](FusionAuthConfig.md#onloginfailure)
- [onRedirect](FusionAuthConfig.md#onredirect)
- [postLogoutRedirectUri](FusionAuthConfig.md#postlogoutredirecturi)
- [redirectUri](FusionAuthConfig.md#redirecturi)
@@ -24,6 +26,7 @@ Config for the FusionAuth Vue SDK
- [shouldAutoFetchUserInfo](FusionAuthConfig.md#shouldautofetchuserinfo)
- [shouldAutoRefresh](FusionAuthConfig.md#shouldautorefresh)
- [tokenRefreshPath](FusionAuthConfig.md#tokenrefreshpath)
+- [useDpop](FusionAuthConfig.md#usedpop)
## Properties
@@ -35,7 +38,7 @@ The number of seconds before the access token expiry when the auto refresh funct
#### Defined in
-[src/types.ts:44](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L44)
+[packages/sdk-vue/src/types.ts:44](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L44)
---
@@ -47,7 +50,20 @@ The client id of the application.
#### Defined in
-[src/types.ts:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L15)
+[packages/sdk-vue/src/types.ts:15](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L15)
+
+---
+
+### dpopTokenStorage
+
+• `Optional` **dpopTokenStorage**: `"localStorage"` \| `"memory"`
+
+Token storage location in DPoP mode. Only meaningful when `useDpop: true`.
+Defaults to `'localStorage'`.
+
+#### Defined in
+
+[packages/sdk-vue/src/types.ts:100](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L100)
---
@@ -59,7 +75,7 @@ The path to the login endpoint.
#### Defined in
-[src/types.ts:65](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L65)
+[packages/sdk-vue/src/types.ts:71](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L71)
---
@@ -71,7 +87,7 @@ The path to the logout endpoint.
#### Defined in
-[src/types.ts:69](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L69)
+[packages/sdk-vue/src/types.ts:75](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L75)
---
@@ -83,7 +99,7 @@ The path to the me endpoint.
#### Defined in
-[src/types.ts:81](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L81)
+[packages/sdk-vue/src/types.ts:87](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L87)
---
@@ -136,7 +152,7 @@ This is needed for the Vue SDK to support Nuxt/SSR.
#### Defined in
-[src/types.ts:60](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L60)
+[packages/sdk-vue/src/types.ts:66](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L66)
---
@@ -162,7 +178,34 @@ Callback to be invoked if a request to refresh the access token fails during aut
#### Defined in
-[src/types.ts:54](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L54)
+[packages/sdk-vue/src/types.ts:54](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L54)
+
+---
+
+### onLoginFailure
+
+• `Optional` **onLoginFailure**: (`error`: `Error`) => `void`
+
+Callback invoked if a DPoP mode login/register/redirect exchange fails.
+Only relevant when `useDpop: true`.
+
+#### Type declaration
+
+▸ (`error`): `void`
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `error` | `Error` |
+
+##### Returns
+
+`void`
+
+#### Defined in
+
+[packages/sdk-vue/src/types.ts:60](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L60)
---
@@ -188,7 +231,7 @@ Callback function to be invoked with the `state` value upon redirect from login
#### Defined in
-[src/types.ts:49](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L49)
+[packages/sdk-vue/src/types.ts:49](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L49)
---
@@ -200,7 +243,7 @@ The redirect URI for post-logout. Defaults the provided `redirectUri`.
#### Defined in
-[src/types.ts:24](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L24)
+[packages/sdk-vue/src/types.ts:24](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L24)
---
@@ -212,7 +255,7 @@ The redirect URI of the application.
#### Defined in
-[src/types.ts:19](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L19)
+[packages/sdk-vue/src/types.ts:19](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L19)
---
@@ -224,7 +267,7 @@ The path to the register endpoint.
#### Defined in
-[src/types.ts:73](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L73)
+[packages/sdk-vue/src/types.ts:79](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L79)
---
@@ -236,7 +279,7 @@ The OAuth2 scope parameter passed to the `/oauth2/authorize` endpoint. If not sp
#### Defined in
-[src/types.ts:29](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L29)
+[packages/sdk-vue/src/types.ts:29](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L29)
---
@@ -248,7 +291,7 @@ The URL of the FusionAuth server.
#### Defined in
-[src/types.ts:11](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L11)
+[packages/sdk-vue/src/types.ts:11](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L11)
---
@@ -260,7 +303,7 @@ Enables the SDK to automatically handle fetching user info when logged in. Defau
#### Defined in
-[src/types.ts:39](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L39)
+[packages/sdk-vue/src/types.ts:39](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L39)
---
@@ -272,7 +315,7 @@ Enables automatic token refreshing. Defaults to false.
#### Defined in
-[src/types.ts:34](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L34)
+[packages/sdk-vue/src/types.ts:34](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L34)
---
@@ -284,4 +327,18 @@ The path to the token refresh endpoint.
#### Defined in
-[src/types.ts:77](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L77)
+[packages/sdk-vue/src/types.ts:83](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L83)
+
+---
+
+### useDpop
+
+• `Optional` **useDpop**: `boolean`
+
+Opt-in to DPoP mode. When `true`, the SDK calls FusionAuth endpoints
+directly and stores tokens in JavaScript-accessible storage instead of
+relying on the Hosted Backend's HttpOnly cookies. Defaults to `false`.
+
+#### Defined in
+
+[packages/sdk-vue/src/types.ts:94](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L94)
diff --git a/packages/sdk-vue/docs/interfaces/UserInfo.md b/packages/sdk-vue/docs/interfaces/UserInfo.md
index 9f11853..3687b1c 100644
--- a/packages/sdk-vue/docs/interfaces/UserInfo.md
+++ b/packages/sdk-vue/docs/interfaces/UserInfo.md
@@ -11,14 +11,14 @@ User information returned from FusionAuth.
- [applicationId](UserInfo.md#applicationid)
- [birthdate](UserInfo.md#birthdate)
- [email](UserInfo.md#email)
-- [email_verified](UserInfo.md#email_verified)
-- [family_name](UserInfo.md#family_name)
-- [given_name](UserInfo.md#given_name)
-- [middle_name](UserInfo.md#middle_name)
+- [email\_verified](UserInfo.md#email_verified)
+- [family\_name](UserInfo.md#family_name)
+- [given\_name](UserInfo.md#given_name)
+- [middle\_name](UserInfo.md#middle_name)
- [name](UserInfo.md#name)
-- [phone_number](UserInfo.md#phone_number)
+- [phone\_number](UserInfo.md#phone_number)
- [picture](UserInfo.md#picture)
-- [preferred_username](UserInfo.md#preferred_username)
+- [preferred\_username](UserInfo.md#preferred_username)
- [roles](UserInfo.md#roles)
- [sid](UserInfo.md#sid)
- [sub](UserInfo.md#sub)
@@ -32,7 +32,7 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:88](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L88)
+[packages/sdk-vue/src/types.ts:107](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L107)
---
@@ -42,7 +42,7 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:89](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L89)
+[packages/sdk-vue/src/types.ts:108](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L108)
---
@@ -52,47 +52,47 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:90](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L90)
+[packages/sdk-vue/src/types.ts:109](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L109)
---
-### email_verified
+### email\_verified
-• `Optional` **email_verified**: `boolean`
+• `Optional` **email\_verified**: `boolean`
#### Defined in
-[src/types.ts:91](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L91)
+[packages/sdk-vue/src/types.ts:110](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L110)
---
-### family_name
+### family\_name
-• `Optional` **family_name**: `string`
+• `Optional` **family\_name**: `string`
#### Defined in
-[src/types.ts:92](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L92)
+[packages/sdk-vue/src/types.ts:111](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L111)
---
-### given_name
+### given\_name
-• `Optional` **given_name**: `string`
+• `Optional` **given\_name**: `string`
#### Defined in
-[src/types.ts:93](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L93)
+[packages/sdk-vue/src/types.ts:112](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L112)
---
-### middle_name
+### middle\_name
-• `Optional` **middle_name**: `string`
+• `Optional` **middle\_name**: `string`
#### Defined in
-[src/types.ts:95](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L95)
+[packages/sdk-vue/src/types.ts:114](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L114)
---
@@ -102,17 +102,17 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:94](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L94)
+[packages/sdk-vue/src/types.ts:113](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L113)
---
-### phone_number
+### phone\_number
-• `Optional` **phone_number**: `string`
+• `Optional` **phone\_number**: `string`
#### Defined in
-[src/types.ts:96](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L96)
+[packages/sdk-vue/src/types.ts:115](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L115)
---
@@ -122,17 +122,17 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:97](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L97)
+[packages/sdk-vue/src/types.ts:116](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L116)
---
-### preferred_username
+### preferred\_username
-• `Optional` **preferred_username**: `string`
+• `Optional` **preferred\_username**: `string`
#### Defined in
-[src/types.ts:98](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L98)
+[packages/sdk-vue/src/types.ts:117](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L117)
---
@@ -142,7 +142,7 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:99](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L99)
+[packages/sdk-vue/src/types.ts:118](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L118)
---
@@ -152,7 +152,7 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:100](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L100)
+[packages/sdk-vue/src/types.ts:119](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L119)
---
@@ -162,7 +162,7 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:101](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L101)
+[packages/sdk-vue/src/types.ts:120](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L120)
---
@@ -172,4 +172,4 @@ User information returned from FusionAuth.
#### Defined in
-[src/types.ts:102](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/types.ts#L102)
+[packages/sdk-vue/src/types.ts:121](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/types.ts#L121)
diff --git a/packages/sdk-vue/docs/modules.md b/packages/sdk-vue/docs/modules.md
index c026c85..05caddb 100644
--- a/packages/sdk-vue/docs/modules.md
+++ b/packages/sdk-vue/docs/modules.md
@@ -70,7 +70,7 @@ Renames and re-exports [FusionAuthLoginButton](modules/FusionAuthLoginButton.md)
#### Defined in
-[src/injectionSymbols.ts:1](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/injectionSymbols.ts#L1)
+[packages/sdk-vue/src/injectionSymbols.ts:1](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/injectionSymbols.ts#L1)
---
@@ -96,7 +96,7 @@ Renames and re-exports [FusionAuthLoginButton](modules/FusionAuthLoginButton.md)
#### Defined in
-[src/createFusionAuth/createFusionAuth.ts:7](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/createFusionAuth/createFusionAuth.ts#L7)
+[packages/sdk-vue/src/createFusionAuth/createFusionAuth.ts:7](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/createFusionAuth/createFusionAuth.ts#L7)
---
@@ -116,7 +116,7 @@ Renames and re-exports [FusionAuthLoginButton](modules/FusionAuthLoginButton.md)
#### Defined in
-[src/composables/useFusionAuth.ts:5](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/composables/useFusionAuth.ts#L5)
+[packages/sdk-vue/src/composables/useFusionAuth.ts:5](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/composables/useFusionAuth.ts#L5)
## Plugin
@@ -146,4 +146,4 @@ Will throw an error if the required options are missing.
#### Defined in
-[src/FusionAuthVuePlugin.ts:17](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/02b46e2174ba0f4804f6b5ef004ac88414902cc3/packages/sdk-vue/src/FusionAuthVuePlugin.ts#L17)
+[packages/sdk-vue/src/FusionAuthVuePlugin.ts:17](https://github.com/FusionAuth/fusionauth-javascript-sdk/blob/97b137f4922b7072a3d647cca72fc0a02412325b/packages/sdk-vue/src/FusionAuthVuePlugin.ts#L17)