FwcallApp não autentica usuário com protheus lib core

Estou utilizando uma função FwCallApp('teste'). No projeto angular, já tenho importado o componente protheus-lib-core. Tanto que o utilizo para fechar a tela, utilizando o .callAppClose(), e funciona certinho. Mas depois de ativar o Security=1 no appsever.ini, passou a aparecer a mensagem:

The request requires authentication. The server might return this response for a page behind a login.

Entendo que importanto o protheus-lib-core, já deveria considerar o usuário logado do protheus, passando o token no cabeçalho da requisição.

Pergunta: eu preciso fazer algo a mais, além de importar o protheus-lib-core, declarar no app.module ?

Onde dá a mensagem do erro, é quando tento fazer uma requisição GET

Segue o app.component.ts

import { Component } from '@angular/core';

import { PoMenuItem } from '@po-ui/ng-components';

import { ProAppConfigService } from '@totvs/protheus-lib-core';


@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  readonly menus: Array<PoMenuItem> = [
    { label: 'Painel', link: '/', icon: 'po-icon-home', shortLabel: 'Painel' },
    { label: 'Tarefas', shortLabel: 'Tarefas', icon: 'po-icon-table', subItems: [
      {label: 'Lembretes', shortLabel: 'Lembretes', link: 'table/service', icon: 'po-icon-star-filled'}
      ]
    },
    {label: 'Sair', action: this.closeApp.bind(this), icon: 'po-icon-exit', shortLabel: 'Sair'}
    //{label: 'Sair', action: this.closeApp.bind(this)}
  ];

  constructor(private proAppConfigService: ProAppConfigService) {
    /*if (!this.proAppConfigService.insideProtheus()) {
      this.proAppConfigService.loadAppConfig();
    }*/
    this.proAppConfigService.loadAppConfig();
  }

  private closeApp() {
    if (this.proAppConfigService.insideProtheus()) {
      this.proAppConfigService.callAppClose();
    } else {
      alert('O App não está sendo executado dentro do Protheus.');
    }
  }

}

home.component.ts:

import { HttpClient } from '@angular/common/http';
import { Component, Input, OnInit } from '@angular/core';


@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styles: [
  ]
})

export class HomeComponent implements OnInit {


  @Input()
  pendentes = '';
  aprovados = '';

  constructor(private http: HttpClient) {

  }

  ngOnInit(): void {
   this.retornaTotalLembretes();
    console.log(this.pendentes);
  }

  retornaTotalLembretes() {

    return this.http.get<any>('http://192.168.101.244:10099/api/ibar/wslembrete/count')
    .subscribe(resultado => {
      const var1 = JSON.stringify(resultado);
      const obj = JSON.parse(var1);
      this.pendentes = (obj.items[0].pendentes);
      this.aprovados = (obj.items[0].aprovados);
  });
  }




}
compartilhar
  • Cristiano, poderia dar um exemplo de como você está fazendo a requisição, por favor.

    Daniel Mendes   29 de Nov de 2023
  • Adicionei o exemplo

    Cristiano Silva   08 de Dec de 2023
  • Cristiano, você não está usando a porta única? Como está o seu arquivo appConfig.json?

    Daniel Mendes   08 de Dec de 2023
  • Precisa utilizar o ProtheusInterceptor no projeto Angular.

    Matheus Costa   11 de Dec de 2023
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags fwcallapp protheus-lib-core ou faça a sua própria pergunta.