Agora que você já conhece o pacote Mingle e sua configuração inicial já está funcionando, vamos utilizar o Mingle para realizar a autenticação do usuário ao seu servidor.
Pré requisitos:
Considere o arquivo: login.component.ts
Importe a classe MingleService
import { MingleService } from '@totvs/mingle'; |
Na sua função de login, utilize o método mingleService.auth.login(usuário, senha, alias)
Lembrando que os dados de autenticação, usuário e senha, serão enviados para a autenticação do seu host (Protheus, Logix, Datasul, etc...)
export class LoginComponent implements OnInit {
constructor(private mingleService: MingleService,
private configService: ConfigService,
private route: Router,
private poNotification: PoNotificationService) { }
ngOnInit(): void {}
login(formulario) {
this.mingleService.auth.login(formulario.login,
formulario.password,
this.configService.getAlias())
.subscribe((dataLogin) => {
console.log("Login com sucesso - dados do login", dataLogin);
this.route.navigate(['home']);
}, (authError) => {
console.log(authError);
console.error('Falha na autenticação');
});}}
|
No caso deste tutorial o valor do parâmetro Alias foi obtido através de um método "getAlias" que criamos no aplicativo de demonstração, mas o parâmetro pode ser passado como string.
Após executar o Login no aplicativo, o retorno de sucesso será parecido com este:
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9Mug",
"muser":{"_id":"5ffda7bdaacb0685f34d59e2","login":"exemplo"},
"set":{"_id":"5fbe5712d8ccbf002cf443f3","alias":"TOTVS"},
"params_values":[{"_id":"5fbe5712d8ccbf002cf443f2","key":"EMPRESA","value":"123"}],
"client":{"_id":"5eeb67edeb62740029b1f03f","name":"TOTVS_TDN"},
"wso2":{},
"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWZmZGE3YmRhYWNiMDY4NWYzNGQ1OWUyIiwic2V0X2lkIjoiNWZiZTU3MTJkOGNjYmYwMDJjZjQ0M2YzIiwiY2xpZW50X2lkIjoiNWVlYjY3ZWRlYjYyNzQwMDI5YjFmMDNmIiwiYXBwX2lkIjoiNWZiMmFlMmE1NzVhZTgwMDRhN2QxZmY1Iiwib3JpZ2luIjoibW9iaWxlIiwidXR5cGUiOiJQcm94eVVzZXIiLCJ0dHlwZSI6InIiLCJpYXQiOjE2MTA0NTkwNjksImV4cCI6MTYxMDU1OTA2OSwiYXVkIjoibWluZ2xlIiwiaXNzIjoid2VidGVzdGluZzogTGludXggeDg2XzY0In0.CO9WF84Z3LmpauISeEPyDxVn4BA3jiWlRtVo68_7av8","
auth_driver":"protheus"} |
Para realizar o logout utilize o nosso método mingleService.auth.logout();
this.mingleService.auth.logout().subscribe(() => {
console.log("Usuário deslogado");
this.route.navigate(['login']);
})
|