positiva-aws-users-plugin
v1.0.1
Published
Implementa a lógica para autenticar usuários de uma aplicação e componentes como tela de login
Downloads
2
Readme
positiva-aws-users-plugin
Gerencia assuntos relacionados a usuários
para o frontend
. Trazendo componentes e métodos para comunicação com o backend
.
Tabela de conteúdo
Motivação
Toda aplicação da @Positiva
terá um controle de acesso por usuários. A automatização através de convenções implementadas por esse plugin, tem o intuito de acelerar o desenvolvimento de novas soluções.
Dependências
npm i aws-amplify
Ter configurado o AWS Amplify, como mostra a estrutura a seguir
Amplify.configure({
Auth: {
mandatorySignIn: true,
region: REGION,
userPoolId: USER_POOL_ID,
identityPoolId: IDENTITY_POOL_ID,
userPoolWebClientId: APP_CLIENT_ID
},
API: {
endpoints: [
{
name: API_ENDPOINT_NAME,
endpoint: API_GATEWAY_URL,
region: REGION
}
]
}
});
Como importar
import PositivaAWSUsers from "positiva-aws-users-plugin";
Vue.use(PositivaAWSUsers);
Parâmetros
apiEndpointName
Nome do alias de um endpoint configurado no AWS Amplify.
Componentes
<positiva-user-login><positiva-user-login/>
<positiva-user-confirm><positiva-user-confirm/>
<positiva-user-forget><positiva-user-forget/>
<positiva-user-update><positiva-user-update/>
Como usar
O plugin é utilizado através da seguinte estrutura
this.$users.<attr/method>
data
Ao fazer login
as informações do usuário logado estará armazenada no seguinte atributo
this.$users.data.me
Também, como existe um usuário do tipo administrador
então ele poderá editar e vizulizar algumas informações de outros usuários. Essas informações estarão armazenadas no seguinte atributo, após ter feito login.
this.$users.data.all
login
/*
Realiza login de um usuário na aplicação
@username -> um e-mail válido
@password -> uma senha que possua no mínimo 8 caracteres
*/
async function login(username, password)
// por exemplo
await this.$users.login("[email protected]", "senha-secreta");
isLogged
/*
Verifica se tem algum usuário logado na sessão
@return -> *true* se sim, *false* caso contrário
*/
async function isLogged()
// por exemplo
const algumUsuarioLogado = await this.$users.isLogged();
lougout
/*
Faz logout de um sessão
@return -> null
*/
async function logout()
// por exemplo
await this.$users.lougout();
recovery
/*
Inicia o processo de recuperar senha de um usuário. A chamada desse método resultará em um e-mail sendo enviado com um código de verificação.
@username -> e-mail da conta a ter sua senha resgatada
@return -> null
*/
async function recovery(username)
// por exemplo
await this.$users.recovery("[email protected]");
create
/*
Cria um novo usuário
@username -> um e-mail válido
@password -> uma senha que possua no mínimo 8 caracteres
@content -> campos que contém informações sobre aquele usuário
*/
async function create(username, password, content)
// por exemplo
this.$users.create(
"[email protected]",
'senha-secreta',
{
role: 'Administrador',
phone: '+55 45 99999 9999'
}
);
remove
/*
Remove um usuário existente
@username -> um e-mail válido e cadastrado
*/
async function remove(username)
// por exemplo
this.$users.remove("[email protected]")
update
/*
Atualiza informações de um usuário existente
@username -> um e-mail válido e cadastrado
@content -> novas informações sobre aquele usuário. Importante passar todos os campos que deseja manter, mesmo que seu valor não foi atualizado
*/
async function update(username, content)
// por exemplo
this.$users.update("[email protected]", {
role: "Administrador",
phone: "+55 45 99899 9999"
});
Autor
Renan Tashiro ([email protected])
Licença
AGPL-3.0