bento-auth-js
Version:
Authentication library for web applications of Bento-Platform
91 lines (90 loc) • 2.82 kB
TypeScript
import { JWTPayload } from "jose";
import { Resource } from "../resources";
type TokenHandoffParams = {
code: string;
clientId: string;
authCallbackUrl: string;
verifier: string;
};
type TokenHandoffPayload = {
access_token: string;
expires_in: number;
id_token: string;
refresh_token: string;
error?: {
error?: string;
error_description?: string;
};
};
export declare const tokenHandoff: import("@reduxjs/toolkit").AsyncThunk<TokenHandoffPayload, TokenHandoffParams, {
state?: unknown;
dispatch?: import("redux").Dispatch;
extra?: unknown;
rejectValue?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
type RefreshTokenPayload = {
access_token: string;
expires_in: number;
id_token: string;
refresh_token: string;
};
export declare const refreshTokens: import("@reduxjs/toolkit").AsyncThunk<RefreshTokenPayload, string, {
state?: unknown;
dispatch?: import("redux").Dispatch;
extra?: unknown;
rejectValue?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const setIsAutoAuthenticating: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
type FetchPermissionsPayload = {
result: string[][];
};
type FetchPermissionsParams = {
resources: Resource[];
authzUrl: string;
};
export declare const fetchResourcesPermissions: import("@reduxjs/toolkit").AsyncThunk<FetchPermissionsPayload, FetchPermissionsParams, {
state?: unknown;
dispatch?: import("redux").Dispatch;
extra?: unknown;
rejectValue?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export type AuthSliceState = {
loading: boolean;
hasAttempted: boolean;
isHandingOffCodeForToken: boolean;
handoffError: string;
isRefreshingTokens: boolean;
tokensRefreshError: string;
isAutoAuthenticating: boolean;
resourcePermissions: {
[name: string]: {
isFetching: boolean;
hasAttempted: boolean;
error: string;
permissions: string[];
};
};
sessionExpiry?: number;
idToken?: string;
idTokenContents?: JWTPayload;
accessToken?: string;
refreshToken?: string;
};
export declare const authSlice: import("@reduxjs/toolkit").Slice<AuthSliceState, {
signOut: (state: import("immer/dist/internal").WritableDraft<AuthSliceState>) => void;
}, "auth">;
export declare const signOut: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"auth/signOut">;
declare const _default: import("redux").Reducer<AuthSliceState>;
export default _default;