Problemer med nedlasting av SurveyResult PDF fra Landax – krever fortsatt innlogging ved åpning

Hei,
jeg forsøker å hente ut PDF-filer fra Landax sitt SurveyResults/Pdf-endepunkt, for så å lagre disse i Appfarm slik at brukerne kan laste dem ned som en helt lokal fil.

Jeg får hentet PDF-en via Web Request med responseType: arraybuffer og base64-enkoder den. Jeg lagrer dette i en App variable (for eksempel lagrePDF) og kan laste ned via en Execute JavaScript-node (med a-element som peker til base64-strengen).

Det fungerer fint lokalt hos meg, og jeg får åpnet filen uten problemer.

Men:
når jeg lagrer filen videre som et Appfarm File Object (via Create File Object eller som Public/OnServer/RUNTIME), og deretter prøver å laste ned filen derfra, så havner jeg på Landax sin innloggingsside. Jeg ser at i PDF-vieweren lastes login-skjermen inn som en slags embedded side.

Dette skjer uavhengig av om jeg:

:white_check_mark: laster ned med bearer token
:white_check_mark: setter file object til public
:white_check_mark: prøver å transformere via arraybuffer
:white_check_mark: henter PDF via GET og direkte application/pdf

Jeg har testet:

  • Create File Object (vanlig)
  • Create File Object (public)
  • Create File Object (OnServer / RUNTIME)
  • Nedlasting lokalt med base64
  • Åpning i Document Viewer

“Alt” gir samme resultat dersom jeg prøver å bruke filen etter lagring i Appfarm — PDF-en inneholder da en redirect til Landax login.


Hei,

Bra med informasjon her!

Virker som den nedlastede filen ikke er en PDF-fil, men noe som ligner en HTML-fil som gjør at den åpner en innloggingsside. Får du bekreftet type fil som faktisk blir lastet ned?

Grunnen til at det fungerer lokalt kan være fordi du bruker dataen rett etter at du har hentet den og da fungerer autentiseringen.

Hei, takk for innspillet!

Ja — jeg forstår poenget deres om at det kan være en HTML-redirect, men jeg mener jeg faktisk “får en korrekt PDF” ut fra Landax sitt API, i det jeg henter ned filen.

Her er et eksempel direkte fra Web Request-configen min, der jeg får status 200 og binært innhold som ser ut som ekte PDF (med %PDF-1.4 header etc.):

json
{
“requestConfig”: {
“url”: “https://akhsandkasse.landax.no/api/v30/SurveyResults/Pdf?id=193305&orientation=Portrait”,
“headers”: {
“Accept”: “application/pdf”,
“Authorization”: “Bearer ”,
“User-Agent”: “Appfarm/…”
}
}
}

Når jeg fanger opp rawResponseData ser jeg at det starter med:

%PDF-1.4
%����
1 0 obj

og dette kan jeg base64-konvertere og åpne direkte i browseren uten innlogging (lokalt virker dette 100%).

Problemet er at når jeg senere lagrer denne base64-PDF-en i et Appfarm File Object (prøvd innbygd funksjonalitet for create file også med Public, OnServer, RUNTIME, osv), og deretter forsøker å åpne den, så blir det en redirect til Landax sin login-skjerm i selve PDF-vieweren. Det virker nesten som om Appfarm under lagring eller visning ikke respekterer binærfilen, men henter den på nytt — og da kreves login.

Derfor tror jeg egentlig filtypen er korrekt, men lagringsmåten gjør at den fortsatt peker tilbake til Landax i en eller annen form.

Hei, Oskar

Vi vil gjerne finne ut av hva som skjer her. Jeg kontakter deg direkte.

Mvh
Øystein | Appfarm Support