Расшифровать входящий ответ angular 9 - PullRequest
0 голосов
/ 03 мая 2020

Я использую angular 9 и перехватчики ... Используемый мной API зашифровывает ответ JSON в AES, а когда API отвечает, мне нужно расшифровать ответ в angular 9. .. Мне нужно получить грубый ответ, но я не вижу способа сделать это ... Перехватчики в angular 9 выглядят, что не позволяет мне это сделать. Я сделал следующее:

import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { map, tap, catchError, filter, scan } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class ResponseInterceptor implements HttpInterceptor {

  constructor() {}

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

    return next.handle(req).pipe(
        tap(evt => {
            if (evt instanceof HttpResponse) {
               console.log(evt);
            }
        }));
  }
}

Ответ API:

kVwKXPYoRTPNZVv0X6pCWA9cpj7CqGV1h4zvI8X4F47FIJpTwLAP497JquiC+t95skz9HSdUJfizjPz+7jokcxUuW1dUdP8/MTp+Gn0TxPHTF+o6gUFj3sZJQGESMolINa0vjuvaHogiIcdn0XO6mdeDgD6AIOqqgvOUM2EYwcjzHXC3Ag8wL0ybeSMZB7j3XFmcfO97EohLM2yPBvwqeO0a8Dqzsn+DE5VXNOdcK8ArzXbXe8eARQl+vajGU6JuFsSsSU+cNil2AQHemyzknl02MWL7nIAps4SgynpGRw4z0IIhE2EbJANj5WzoxvOHNbGYPjkdPezO91CKeWsdZdCcDcJeJqdclvuntXRnkZVHTB/zARgiYLREHQ/eO5/5W25JR3En3+B3yIyoXI+W70fgLOZofSPYK6yUrkO0nZoAEdFGPcvOVx9eaQraDjGLG7JrnpRpXqscW8sFpaNvR2Cfay8gRJcscGDZlsSlhNMce6r/2WwDhQx29Dkvt2V+dBb4obrHTptqdCcq+uKnir/2cTUIOm03anZWU2c8u3WFxAalYbISGZrH6HySE/4ncP5y7Cm5ziAxDFLP4c4La1yKMKsFmBEfmzzdhgq8gGE6M3UPpLdaCF2yc4ddpJ7+l5QBT2pXIKQcNUraGbyD35hoB5AKyLfxTGd8wW2qVGe4RrrUXs5GhrZRZk0BwEFYG/kpQmGUvJ0hCA6lzUypOnYzNOeJ5s4XmprFhI9qIZPUoC/JroCnlw/+O4MN9cYI96RMvBICoL4+01c+y+ykppFP48kmKgk4+42ZFFC8mHg55rq9hTjJk5TKzq/N7Np2

И при выполнении ответа тип переменной evt равен type и значение равно 0. Любое предложение ???

Перехватчик не позволяет мне применить шифрование к ответу и внезапно просто пытается преобразовать его в JSON.

enter image description here

1 Ответ

0 голосов
/ 03 мая 2020

Хорошо, пока я получаю более эффективный и экспертный ответ ... Я решил так:

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).pipe(

        catchError(err => {                

            this.alertService.clear();

            if (err.status === 200){

                return of(new HttpResponse({ status: 200, body: JSON.parse(aes.decrypt(err.error.text)) }));                   
            }                

            if (err.status === 401) {

                this.authenticationService.logout();
                location.reload(true);
            }

            const error = err.error.message || err.statusText;
            this.alertService.error(error);            
            console.log(err);
        }))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...