electron-auth0-login
Version:
Provides Auth0 authentication services for your Electron.js application
32 lines (23 loc) • 1.11 kB
text/typescript
import { Adapter, Keytar } from '../types';
import { context } from '../framework';
export const keytarRefreshTokens: Adapter = (config) => {
if (!config.refreshTokens) throw new Error(`No config.refreshTokens`);
if (!('keytar' in config.refreshTokens)) throw new Error(`No refreshTokens.keytar`);
if (!('appName' in config.refreshTokens)) throw new Error(`No refreshTokens.appName`);
const { keytar, appName } = config.refreshTokens;
return context('refreshTokens', {
get: () => keytar.getPassword(appName, 'refresh-token'),
async set(password: string) {
await keytar.setPassword(appName, 'refresh-token', password);
},
async delete() {
await keytar.deletePassword(appName, 'refresh-token');
}
});
};
export const customRefreshTokens: Adapter = (config) => {
if (!config.refreshTokens || !('store' in config.refreshTokens)) {
throw new Error('No refresh token store on config');
}
return context('refreshTokens', config.refreshTokens.store);
};