Заголовок авторизации недействителен - требуется один и только один '' (пробел) - PullRequest
0 голосов
/ 07 ноября 2019

Я интегрировал свое приложение Angular с AWS Cognito, используя amazon-cognito-identity-js version 3.2.0".

Во время разработки и тестирования на моей локальной машине оно работает нормально. Я получаю три вида токенов с сервера, то есть accessToken, idToken и refreshToken, и эти токены работают хорошо.

Я создал точно такой же код, используя ng build --prod, и развернул его в корзину S3. Даже сейчас я получаю аналогичные 3 токена, однако при последующих вызовах сервер выдает ошибку:

400 Bad Request","error":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\nInvalidArgument Недопустимый заголовок авторизации - требуется только один '' (пробел) Авторизация

Я проверил и нигде не могу добавить никакого дополнительного пространства. Я сохранил свои userPoolId и clientId в файле environment.prod.ts, и они не содержат лишних пробелов.

При входе в систему я звоню https://mydomain-dev-static-backops.s3.my-region.amazonaws.com/assets/data/fake-booking.json.

Это выдает ошибку, когда это вызывается в приложении, в то время как тот же URL-адрес при попадании в браузер возвращает требуемый json.

Я попытался посмотреть несколько связанных вопросов по SO, но они не смоглирешить мою проблему.

Может кто-нибудь направить, пожалуйста.

Редактировать: Ниже приведен код, который используется для добавления заголовков

intercept(
    req: HttpRequest<any>,
    next: HttpHandler
  ): Observable<HttpEvent<any>> {
    let fullReqUrl = '';
    if (req.url.indexOf('http://') > -1 || req.url.indexOf('https://') > -1) {
      return next.handle(req);
    } else {
      fullReqUrl = `${environment.baseUrl}${req.url}`;
    }
    const authToken = this.awsService.getAccessToken();

    let headers = req.headers;

    // set the auth token
    headers = headers.set('Authorization', authToken);

    const authReq = req.clone({ headers, url: fullReqUrl });

    return next.handle(authReq).pipe(
      map(res => res),
      catchError(err => this.handlerError(err))
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...