我正在为一个在客户端中使用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,所以我不确定这是否是发布请求的正确实现,或者不确定如何进行改进以提高性能(以防出现问题)。除此之外,我不确定是否要以正确的方式处理回调。
希望收到反馈,感谢您的关注。