Я пытаюсь настроить логин пользователя для моего приложения Angular 7 и создал большую часть метода cognitoUser.authenticateUser()
, но в методе onSuccess()
я не могу обновить учетные данные конфигурации AWS, потому что я получаю следующую ошибку при AWS.config.credentials.refresh()
* * 1004
«Свойство refresh» не существует для типа «Credentials | CredentialsOptions».
Свойство refresh не существует для типа «CredentialsOptions». "
auth.service.ts:
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import * as AWS from 'AWS-sdk';
import { CognitoIdentityCredentials } from 'AWS-sdk';
import * as AmazonCognitoIdentity from 'amazon-cognito-identity-js';
import credentials from '../../../../server/credentials.json';
@Injectable({
providedIn: 'root'
})
export class AuthService {
user: AmazonCognitoIdentity.CognitoUser;
userPool;
userData;
isAuthenticated: boolean;
constructor(private router: Router) {
const poolData = {
UserPoolId: '*****',
ClientId: credentials.appClientId
}
this.userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
if (this.user) {
this.isAuthenticated = true;
} else {
this.isAuthenticated = false;
}
}
signIn(email, password) {
const authDetails = new AmazonCognitoIdentity.AuthenticationDetails({
Username: email,
Password: password
})
const userData = {
Username: email,
Pool: this.userPool
}
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authDetails, {
onSuccess: function(res) {
const accessToken = res.getAccessToken().getJwtToken();
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: this.userPool.UserPoolId,
Logins: {
'cognito-idp.*****.amazonaws.com/*****': res.getIdToken().getJwtToken()
}
})
AWS.config.credentials.refresh(err => {
// ISSUE HERE
})
},
onFailure: function(err) {
}
}
}
}