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 host do cliente ( Protheus, Datasul, Logix, Smart).
Pré requisitos:
Considere o arquivo: login.component.ts
Importe a classe MingleService
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
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...)
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{"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();
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
this.mingleService.auth.logout().subscribe(() => { console.log("Usuário deslogado"); this.route.navigate(['login']); }) |