使用AWS Cognito令牌在Angular 6上处理POST请求

时间:2018-11-19 04:50:13

标签: javascript angular callback amazon-cognito

我正在为一个在客户端中使用Angular 6的类项目构建一个Web应用程序,并且在某些方法中使用Cognito进行身份验证和授权。

我搜索了很多与Cognito和Angular相关的文档,最后找到了下一个解决方案(有效),该解决方案使用请求标头中的令牌发出发布请求。我的服务上有一个方法可以发出请求,并且该请求具有响应。该方法是从我的component.ts

中调用的

parking-lots.component.ts

this.parkingLotsService
        .makeAReservation(reservation)
        .subscribe(res => {
          if (res) {
            alert(
              'La reserva ha sido realizada con exito a las ' +
                selectedHour +
                ':' +
                selectedMinutes
            );
            document.getElementById('closeModal').click();
          }
        });

getAuthenticatedUser()->在我的服务中,这是从身份验证服务中调用的

getAuthenticatedUser() {
const user = userPool.getCurrentUser();
if (user === null) {
  alert('Debes iniciar sesión para continuar');
  window.location.reload();
}
return userPool.getCurrentUser();}

parking-lots.service.ts

makeAReservation(reservation) {
return this.authentication
  .getAuthenticatedUser()
  .getSession((err, session) => {
    if (err) {
      alert(err);
      return;
    }
    const idToken = session.getIdToken();
    const token = idToken.getJwtToken();

    this.options = new RequestOptions({
      headers: new Headers({
        'Content-Type': 'application/json',
        Authorization: token
      })
    });
    reservation.user = idToken.payload.email;
    return this.http
      .post(
        'https://myendpoint.com',
        reservation,
        this.options
      )
      .pipe(map(res => res.json()));
  });}

由于我以前没有使用过Cognito,所以我不确定这是否是发布请求的正确实现,或者不确定如何进行改进以提高性能(以防出现问题)。除此之外,我不确定是否要以正确的方式处理回调。

希望收到反馈,感谢您的关注。

0 个答案:

没有答案