UNPKG

kotanipay-sdk

Version:

Official Kotani Pay SDK for Node.js and Browser

74 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthService = void 0; const validation_util_1 = require("../../utils/validation.util"); class AuthService { constructor(httpClient) { this.httpClient = httpClient; } /** * Login with email - sends login link to email */ async login(email) { if (!email) { throw new Error('Email is required'); } validation_util_1.ValidationUtil.validateEmail(email); const response = await this.httpClient.post('/api/v3/auth/login', { email }); return response; } /** * Set session data after user clicks login link */ setSession(sessionData) { this.session = sessionData; // Update HTTP client to use the JWT token this.httpClient.setAuthToken(sessionData.token); } /** * Generate API key using the JWT token from login */ async generateApiKey(request) { if (!this.session) { throw new Error('No active session. Please login first and set session data.'); } const response = await this.httpClient.get('/api/v3/auth/api-key/secure'); return response; } /** * Refresh the JWT token using refresh token */ async refreshToken() { if (!this.session?.refresh_token) { throw new Error('No refresh token available. Please login again.'); } const response = await this.httpClient.post('/api/v3/auth/refresh', { refresh_token: this.session.refresh_token }); this.session = response.data; this.httpClient.setAuthToken(this.session.token); return this.session; } /** * Get current session data */ getSession() { return this.session; } getTokenInfo() { return this.session?.token; } /** * Check if user is authenticated */ isAuthenticated() { return !!this.session?.token; } /** * Logout and clear session */ logout() { this.session = undefined; this.httpClient.clearAuthToken(); } } exports.AuthService = AuthService; //# sourceMappingURL=auth.service.js.map