Autenticação com JWT + Protheus + THF

Pessoa, alguém tem algum exemplo de autenticação do Protheus com JWT + Protheus (REST) + THF?

:)

Boa tarde @charlesreitz

temos o app MEURH que utiliza autenticação JWT REST Protheus.

basicamente no seu rest de auth/login você deve utilizar o método FWJWT2BEAR do frame ADVPL para gerar um TOKEN JWT com suas informações:


cToken := FwJWT2Bear(cUserID,{"payments/","payment/","data/","team/", "request/", "timesheet/", "/team/", "setting/"},Date(),Seconds() + 3600,Nil,Nil,{ {"key",cKey} })

após isso, setar no header o token:


::SetHeader('Set-Authorization', 'Bearer ' + cToken)

e via front fazer um interceptor para pegar esse JWT e colocar no header de toda requisição:


intercept( request: HttpRequest<any>, next: HttpHandler ): Observable<HttpEvent<any>> {

    request = request.clone({
      setHeaders: {
        Authorization: 'Bearer ' + this.authService.getToken(),
        'X-Totvs-No-Error': 'true'
      }
    });

    return next.handle(request).catch(x => this.handleAuthError(x));

  }

tenho um post no medium sobre interceptor caso ajude: https://medium.com/matheus-bizutti/introdu%C3%A7%C3%A3o-ao-angular-httpinterceptor-1b06a95a0089

E se quiser saber melhor pode me chamar no ryver Matheus Bizutti

Abraços.

Obrigado Matheus, eu consegui fazer usando o BASIC, mas pretendo implementar com JWT.

Olá, Matheus! Você teria a documentação da função FwJWT2Bear? Quais são os parâmetros ou qual dos parâmetros corresponde ao secret?

A TOTVS colocou uma proteção na chamada da função FwJWT2Bear. Ao invés de ajudar os desenvolvedores disponibilizando uma função útil como essa para todos, fazem este tipo de tratamento fazendo com que a linguagem advpl/tl++ fique continuadamente ultrapassada e carente de recursos.

Bom dia.

Como eu faço do lado Protheus para avaliar o Token recebido no meu WS?

Bom dia Helitom, no momento temos a seguinte documentação em relação ao token: 08. Autenticação baseada em token - Frameworksp - TDN