Invalid totp


  • // server.js
    const express = require('express');
    const { SmartAPI } = require('smartapi-javascript');
    const WebSocket = require('ws');
    const path = require('path');
    require('dotenv').config();
    
    const app = express();
    const port = 3000;
    
    // Middleware
    app.use(express.json());
    app.use(express.static('public'));
    
    // Initialize SmartAPI
    let smart_api;
    try {
        smart_api = new SmartAPI({
            api_key: process.env.SMART_API_KEY,    // Your API Key
            clientId: process.env.CLIENT_ID,       // Your Client ID
            clientSecret: process.env.CLIENT_SECRET // Your Client Secret
        });
        console.log('SmartAPI initialized successfully');
    } catch (error) {
        console.error('Error initializing SmartAPI:', error);
        process.exit(1);
    }
    
    // Store session data
    let session = null;
    
    // Session check middleware
    const checkSession = (req, res, next) => {
        if (!session || !session.feedToken) {
            return res.status(401).json({ success: false, message: 'Not logged in or session expired' });
        }
        next();
    };
    
    //login code test
    app.post('/api/login', async (req, res) => {
        try {
            console.log('Login attempt started...');
            const { client_code, password, totp } = req.body;
            
            if (!client_code || !password || !totp) {
                throw new Error('Missing required login parameters');
            }
    
            console.log('Generating session...');
            const data = await smart_api.generateSession(client_code, password, totp);
            
            console.log('Full API Response:', JSON.stringify(data, null, 2));
    
            if (!data || !data.jwtToken || !data.feedToken) {
                throw new Error('Session generation failed, missing tokens.');
            }
    
            console.log('Session generated successfully:', {
                hasAccessToken: !!data.accessToken,
                hasRefreshToken: !!data.refreshToken,
                hasJwtToken: !!data.jwtToken,
                hasFeedToken: !!data.feedToken
            });
    
            session = data;
            smart_api.jwtToken = data.jwtToken;
            smart_api.feedToken = data.feedToken;
    
            res.json({
                success: true,
                message: 'Login successful',
                sessionInfo: {
                    hasAccessToken: !!data.accessToken,
                    hasJwtToken: !!data.jwtToken,
                    hasFeedToken: !!data.feedToken
                }
            });
    
        } catch (error) {
            console.error('Login error details:', error);
            res.status(500).json({
                success: false,
                message: error.message || 'Login failed',
                errorDetails: error.toString()
            });
        }
    });
    
    

    clientcode:"K624646"


  • @hemil-quarec TOTP is working fine.