@auth0/auth0-vue
Version:
Auth0 SDK for Vue Applications using Authorization Code Grant Flow with PKCE
43 lines (38 loc) • 1.1 kB
text/typescript
import { inject } from 'vue';
import './global';
import { Auth0Plugin } from './global';
import type {
Auth0VueClient,
Auth0PluginOptions,
Auth0VueClientOptions
} from './global';
import { AUTH0_INJECTION_KEY, AUTH0_TOKEN } from './token';
import { deprecateRedirectUri } from './utils';
export * from './global';
export { AUTH0_INJECTION_KEY } from './token';
declare module 'vue' {
export interface ComponentCustomProperties {
[AUTH0_TOKEN]: Auth0VueClient;
}
}
/**
* Creates the Auth0 plugin.
*
* @param clientOptions The Auth Vue Client Options
* @param pluginOptions Additional Plugin Configuration Options
* @returns An instance of Auth0Plugin
*/
export function createAuth0(
clientOptions: Auth0VueClientOptions,
pluginOptions?: Auth0PluginOptions
) {
deprecateRedirectUri(clientOptions);
return new Auth0Plugin(clientOptions, pluginOptions);
}
/**
* Returns the registered Auth0 instance using Vue's `inject`.
* @returns An instance of Auth0VueClient
*/
export function useAuth0(): Auth0VueClient {
return inject(AUTH0_INJECTION_KEY) as Auth0VueClient;
}