
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
intellisoft-identity-solution
Advanced tools
Sistema de Verificación de Identidad Multi-Step con OTP
Una solución completa de verificación de identidad construida con Stencil.js que permite a los usuarios validar su identidad a través de un proceso de múltiples pasos, incluyendo verificación OTP por SMS y llamadas telefónicas.
src/
├── components/
│ └── my-component/
│ ├── my-component.tsx # Componente principal
│ └── my-component.css # Estilos del componente
├── services/
│ └── api.service.ts # Servicios de API
├── config/
│ └── environment.ts # Configuración de ambiente
└── global/
└── app.css # Estilos globales
Tecnología | Versión | Propósito |
---|---|---|
Stencil.js | Latest | Framework de Web Components |
TypeScript | Latest | Tipado estático |
Fetch API | Native | Peticiones HTTP |
FormData | Native | Envío de datos |
# Clonar el repositorio
git clone <repository-url>
cd identity-solution
# Instalar dependencias
npm install
# Iniciar servidor de desarrollo
npm start
# Construir para producción
npm run build
# Ejecutar tests
npm test
<!DOCTYPE html>
<html>
<head>
<script type="module" src="https://unpkg.com/identity-solution/dist/identity-solution/identity-solution.esm.js"></script>
</head>
<body>
<my-component></my-component>
</body>
</html>
import 'identity-solution/my-component';
function App() {
return (
<div>
<my-component></my-component>
</div>
);
}
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { defineCustomElements } from 'identity-solution/my-component';
// Importante: Registrar los elementos personalizados
defineCustomElements();
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA] // Importante: Permitir elementos personalizados
})
export class AppModule { }
@Component({
template: `
<new-account-modal
[channel]="'TIENDAPROD'"
[external-id]="'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'"
(validationCompleted)="onValidationCompleted($event)">
</new-account-modal>
`
})
export class MyComponent {
onValidationCompleted(event: CustomEvent) {
const result = event.detail;
// Ejemplo del objeto que recibirás:
// {
// hasError: boolean;
// errorDesc: string;
// errorInter: string;
// errorNum: number;
// code: number;
// validationPassed: boolean;
// identityId: string;
// }
if (result.hasError) {
console.log('Error en validación:', result.errorDesc);
console.log('Código de error:', result.errorInter);
console.log('ID de identidad:', result.identityId);
} else {
console.log('Validación exitosa');
console.log('ID de identidad:', result.identityId);
}
}
}
// src/config/environment.ts
export const environment = {
apiBaseUrl: "https://miclarobot.claropr.com/api2",
isProduction: true
};
Método | Endpoint | Descripción |
---|---|---|
createSession() | /api/v1/IdentityProxy/session | Crear sesión de identidad |
getSessionInfo() | /api/v1/IdentityProxy/session/get | Obtener información de sesión |
validateIdentity() | /api/v1/IdentityProxy/validate | Validar datos de identidad |
getAuthMethods() | /api/v1/IdentityProxy/config/methods | Obtener métodos de autenticación |
sendOtp() | /api/v1/IdentityProxy/otp/send | Enviar código OTP |
verifyOtp() | /api/v1/IdentityProxy/otp/verify | Verificar código OTP |
getSecurityQuestions() | /api/v1/IdentityProxy/questions/get | Obtener preguntas de seguridad |
verifySecurityQuestions() | /api/v1/IdentityProxy/questions/verify | Verificar respuestas |
import { ApiService } from './services/api.service';
const apiService = new ApiService();
// Crear sesión
const session = await apiService.createSession('web', 'user123');
// Enviar OTP
const otpResult = await apiService.sendOtp(session.identityId, 'sms');
// Verificar OTP
const verification = await apiService.verifyOtp(session.identityId, '123456');
npm start
# Servidor en http://localhost:3333
npm run build
# Archivos generados en /dist
FROM node:16-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3333
CMD ["npm", "start"]
// Solo en desarrollo
if (isDevelopment) {
console.log('🌍 Environment Config:', {
environment: getCurrentEnvironment(),
apiBaseUrl,
isProduction
});
}
try {
const result = await apiService.sendOtp(identityId, 'sms');
} catch (error) {
console.error('Error en sendOtp:', error);
// Manejo específico del error
}
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE
para más detalles.
Componente de validación de identidad para Angular desarrollado con Stencil.
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { defineCustomElements } from 'identity-solution/my-component';
// Importante: Registrar los elementos personalizados
defineCustomElements();
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA] // Importante: Permitir elementos personalizados
})
export class AppModule { }
@Component({
template: `
<new-account-modal
[channel]="'TIENDAPROD'"
[external-id]="'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'"
(validationCompleted)="onValidationCompleted($event)">
</new-account-modal>
`
})
export class MyComponent {
onValidationCompleted(event: CustomEvent) {
const result = event.detail;
// Ejemplo del objeto que recibirás:
// {
// hasError: boolean;
// errorDesc: string;
// errorInter: string;
// errorNum: number;
// code: number;
// validationPassed: boolean;
// identityId: string;
// }
if (result.hasError) {
console.log('Error en validación:', result.errorDesc);
console.log('Código de error:', result.errorInter);
console.log('ID de identidad:', result.identityId);
} else {
console.log('Validación exitosa');
console.log('ID de identidad:', result.identityId);
}
}
}
Propiedad | Tipo | Requerido | Descripción |
---|---|---|---|
channel | string | Sí | Canal de la aplicación (ej: 'TIENDAPROD') |
external-id | string | Sí | Token JWT de identificación externa |
Se emite cuando se completa la validación (éxito o error).
Objeto de respuesta:
{
hasError: boolean; // true si hubo error, false si fue exitoso
errorDesc: string; // Descripción del error (vacío si fue exitoso)
errorInter: string; // Código interno del error
errorNum: number; // Número de error
code: number; // Código de estado
validationPassed: boolean; // true si la validación pasó
identityId: string; // ID único de identidad
}
{
hasError: false,
errorDesc: "",
errorInter: "",
errorNum: 0,
code: 200,
validationPassed: true,
identityId: "61d84cfe-cdb9-4f82-9c0f-96d4f5bf5d96"
}
{
hasError: true,
errorDesc: "El sistema detectó que la validación de identidad no fue exitosa...",
errorInter: "equifax.validation.not.passed",
errorNum: 0,
code: 0,
validationPassed: false,
identityId: "61d84cfe-cdb9-4f82-9c0f-96d4f5bf5d96"
}
{
hasError: true,
errorDesc: "El usuario a interrumpido la validacion de identidad",
errorInter: "error.user.exit",
errorNum: 0,
code: 0,
validationPassed: false,
identityId: "61d84cfe-cdb9-4f82-9c0f-96d4f5bf5d96"
}
identityId
para seguimientoFAQs
Stencil Component Starter
The npm package intellisoft-identity-solution receives a total of 286 weekly downloads. As such, intellisoft-identity-solution popularity was classified as not popular.
We found that intellisoft-identity-solution demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.