/
githubmirror
/
strapi
Обзор
Документация
Войти
/
githubmirror
/
strapi
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
packages/cli/cloud/src/logout/action.ts
45 строк
1 KB
Marc Roig
chore: merge develop into v5 main (#21108)
02 сен 2024, 15:31
Не верифицирован
02 сен 2024, 15:31
43f30b7
Код
Авторство
О чём код?
import type { CLIContext } from '../types'; import { tokenServiceFactory, cloudApiFactory } from '../services'; import { trackEvent } from '../utils/analytics'; const openModule = import('open'); export default async (ctx: CLIContext) => { const { logger } = ctx; const { retrieveToken, eraseToken } = await tokenServiceFactory(ctx); const token = await retrieveToken(); if (!token) { logger.log("You're already logged out."); return; } const cloudApiService = await cloudApiFactory(ctx, token); const config = await cloudApiService.config(); const cliConfig = config.data; try { await eraseToken(); openModule.then((open) => { open .default( `${cliConfig.baseUrl}/oidc/logout?client_id=${encodeURIComponent( cliConfig.clientId )}&logout_hint=${encodeURIComponent(token)} ` ) .catch((e: Error) => { // Failing to open the logout URL is not a critical error, so we just log it logger.debug(e.message, e); }); }); logger.log( '🔌 You have been logged out from the CLI. If you are on a shared computer, please make sure to log out from the Strapi Cloud Dashboard as well.' ); } catch (e) { logger.error('🥲 Oops! Something went wrong while logging you out. Please try again.'); logger.debug(e); } await trackEvent(ctx, cloudApiService, 'didLogout', { loginMethod: 'cli' }); };