steem-auth-vue
Version:
A Vue 3 authentication component for Steem blockchain and Echelon sidechain
40 lines (38 loc) • 1.47 kB
TypeScript
import { IAccount } from '../interfaces';
interface StoredAccount {
username: string;
loginAuth: 'steem' | 'keychain' | 'steemlogin';
accessToken?: string;
encryptedPk?: string;
}
interface AuthState {
isAuthenticated: boolean;
username: string;
account: IAccount | null;
loginAuth: 'steem' | 'keychain' | 'steemlogin';
appName: string;
callbackURL: string;
accounts: StoredAccount[];
}
interface AuthStore {
state: AuthState;
slogin: (access_token: string) => Promise<void>;
logout: () => void;
handleLogin: (username: string, keychainLogin: boolean, posting_key?: string, pin?: string) => Promise<void>;
checkUser: () => Promise<void>;
validatePostingKey: (username: string, postingKey: string) => Promise<boolean>;
setConfig: (appName: string, callbackURL: string) => void;
addAccount: (account: StoredAccount) => void;
removeAccount: (username: string) => void;
switchAccount: (username: string) => Promise<void>;
get username(): string;
get loginAuth(): 'steem' | 'keychain' | 'steemlogin';
get accounts(): StoredAccount[];
}
/**
* Call this function ONLY from inside a component's setup() or a composable called from setup().
* Do NOT call at the top level of a module or in main.ts.
*/
export declare const provideAuthStore: () => AuthStore;
export declare const useAuthStore: () => AuthStore;
export type { AuthStore };