account-sdk
v0.3.1
Published
Lib to interface account api
Downloads
289
Readme
Account SDK
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.
Métodos Disponíveis
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.
Exemplo de Uso
import { IAccountSDK } from "./IAccountSDK";
async function userAuthenticationExample(accountSDK: IAccountSDK) {
// Login do usuário
const loginResult = await accountSDK.signIn(
"[email protected]",
"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(
"[email protected]"
);
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.");
}
}
Observações
- Segurança: Ao utilizar a
IAccountSDK
, garanta que os tokens JWT estejam protegidos e sejam utilizados de forma segura. - Gerenciamento de Estado: Os tokens e os segredos do OTP devem ser armazenados e recuperados de maneira segura para manter a integridade dos métodos de autenticação e autorização.
- Tratamento de Erros: Lide com erros retornados pelos métodos
IAccountSDK
eOTPService
para garantir uma experiência de usuário robusta.
Classe 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.
Métodos Disponíveis
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.
Exemplo de Uso
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 = "[email protected]";
OTPService.generateQRCode(userSecret, issuer, accountName).then((qrCode) => {
console.log(`QR Code URL: ${qrCode}`);
});