Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
account-sdk
Advanced tools
A interface IAccountSDK
define métodos de autenticação e gerenciamento de usuários, como login, criação de credenciais, atualização de informações de perfil, gerenciamento de tarefas do usuário e conquistas. Esses métodos permitem que os desenvolvedores integrem funcionalidades de gerenciamento de conta e permissões de usuário.
Autenticação e Tokens
signIn(login: string, password: string)
: Realiza o login e retorna um token de autenticação.signOut(jwtToken: string)
: Encerra a sessão do usuário.checkToken(jwtToken: string)
: Verifica a validade do token JWT.refreshToken(jwtToken: string)
: Renova o token JWT.rememberPassword(login: string)
: Envia um token para recuperação de senha.resetPasswordFromToken(login: string, jwtTokenToRenew: string, newPassword: string)
: Redefine a senha usando o token de recuperação.Gerenciamento de Usuários
createCredentials(credentials: IUserCredentials, userInContext: ContextUserInfo<any>, userDetails?: IUserAccountDetails)
: Cria novas credenciais para o usuário.updateUserInfoByToken(jwtToken: string, userAccountInfo: T)
: Atualiza informações do usuário usando um token JWT.updateUserInfoByAccountId(accountId: string, userDetails: IUserAccountDetails)
: Atualiza informações do usuário usando o ID da conta.getContextUserInfo(jwtToken: string)
: Retorna informações de contexto do usuário.Gerenciamento de Tarefas e Conquistas
listUserTasks(jwtToken: string)
: Lista todas as tarefas do usuário.addUserTask(jwtToken: string, task: InteractionItem)
: Adiciona uma nova tarefa para o usuário.updateUserTasks(jwtToken: string, tasks: UserInteractions)
: Atualiza tarefas do usuário.removeUserTask(jwtToken: string, taskAlias: string)
: Remove uma tarefa específica do usuário.listAchievements(jwtToken: string)
: Lista todas as conquistas do usuário.addAchievement(jwtToken: string, achievement: InteractionItem)
: Adiciona uma nova conquista para o usuário.updateAchievement(jwtToken: string, achievementAlias: string, achievement: InteractionItem)
: Atualiza uma conquista específica do usuário.removeAchievement(jwtToken: string, achievementAlias: string)
: Remove uma conquista específica do usuário.Gerenciamento de Permissões e Perfil
removeProfilePermission(jwtToken: string, profileAlias: string)
: Remove uma permissão de perfil específica.updateProfilePermission(jwtToken: string, profiles: string[])
: Atualiza as permissões de perfil.listProfiles(jwtToken: string)
: Lista os perfis disponíveis para o usuário.toggleActive(jwtToken: string, active: boolean)
: Ativa ou desativa o perfil do usuário.import { IAccountSDK } from "./IAccountSDK";
async function userAuthenticationExample(accountSDK: IAccountSDK) {
// Login do usuário
const loginResult = await accountSDK.signIn(
"user@example.com",
"password123"
);
if (loginResult.success) {
const { token, expiresIn, userInfo } = loginResult.data;
console.log(`User logged in. Token: ${token}, Expires In: ${expiresIn}`);
}
// Recuperação de senha
const rememberPasswordResult = await accountSDK.rememberPassword(
"user@example.com"
);
if (rememberPasswordResult.success) {
console.log(
`Token para redefinição de senha enviado: ${rememberPasswordResult.data.tokenToRenew}`
);
}
// Listar tarefas do usuário
const tasksResult = await accountSDK.listUserTasks("user_jwt_token");
if (tasksResult.success) {
console.log("User tasks:", tasksResult.data);
}
// Atualizar informações do usuário
const updateUserResult = await accountSDK.updateUserInfoByToken(
"user_jwt_token",
{
firstName: "New",
lastName: "Name",
}
);
if (updateUserResult.success) {
console.log("User info updated successfully.");
}
// Adicionar nova conquista
const addAchievementResult = await accountSDK.addAchievement(
"user_jwt_token",
{
alias: "first_login",
name: "Primeiro Login",
description: "Usuário realizou login pela primeira vez",
}
);
if (addAchievementResult.success) {
console.log("Achievement added successfully.");
}
}
IAccountSDK
, garanta que os tokens JWT estejam protegidos e sejam utilizados de forma segura.IAccountSDK
e OTPService
para garantir uma experiência de usuário robusta.OTPService
A OTPService
é uma classe para gerenciamento de OTPs (One-Time Passwords), utilizada principalmente para autenticação de dois fatores com o Google Authenticator. A classe permite a geração de um secret
, criação de tokens OTP, validação de tokens e geração de QR Codes para fácil configuração.
generateUserSecret()
: Gera um secret único para cada usuário.generateToken(secret: string)
: Gera um token OTP com base no secret fornecido.validateToken(token: string, secret: string)
: Valida o token OTP com base no secret fornecido.generateQRCode(secret: string, issuer: string, accountName: string)
: Gera um QR Code para configuração no Google Authenticator.getCurrentToken(secret: string)
: Obtém o código OTP atual com base no secret.import OTPService from "./OTPService";
// Gera um novo secret para o usuário
const userSecret = OTPService.generateUserSecret();
console.log(`Generated User Secret: ${userSecret}`);
// Exibir o código OTP atual usando o secret do usuário
const currentOtp = OTPService.getCurrentToken(userSecret);
console.log(`Current OTP Code: ${currentOtp}`);
// Validar o OTP
const isValid = OTPService.validateToken(currentOtp, userSecret);
console.log(`Is OTP valid? ${isValid}`);
// Gerar QR Code para configuração no Google Authenticator
const issuer = "YourAppName";
const accountName = "user@example.com";
OTPService.generateQRCode(userSecret, issuer, accountName).then((qrCode) => {
console.log(`QR Code URL: ${qrCode}`);
});
FAQs
Lib to interface account api
We found that account-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.